2016-08-03 6 views
2

私は、以下の内容のWebプロジェクトを開始するコンソールアプリケーションを持っています。OWIN TestServerとConfigurationManagerの使用

using (var server = TestServer.Create<Startup>()) 

起動時に、Webプロジェクトでweb.config appSettingsの値をチェックする必要があります。しかし、これらはすべて欠けている。 ConfigurationManager.AppSettingsにはコンソールアプリケーションappSettingsが表示され、Webプロジェクトは表示されません。明確にするには、ConfigurationManager.AppSettings呼び出しはWebプロジェクト内からの呼び出しです。

TestServerから実行しているときにweb.configを使用するにはどうすればWebプロジェクトを取得できますか?

答えて

0

私も同様の問題がありました。最初は、web.configアプリケーション設定セクション全体をテストプロジェクトのapp.configにコピーしました。次に、私はOwinHost.exeを発見します。名前からわかるように、現在のディレクトリで起動クラスを探して実行するだけです。それに伴い、実際には正しいweb.configが使用されます。 (

solutionRootPathがディレクトリである
 var psi = new ProcessStartInfo 
     { 
      FileName = Path.Combine(solutionRootPath, @"packages\OwinHost.3.0.1\tools\\OwinHost.exe"), 
      WorkingDirectory = packageFolder, 
      RedirectStandardError = true, 
      RedirectStandardOutput = true, 
      CreateNoWindow = true, 
      UseShellExecute = false 
     }; 

     var process = Process.Start(psi); 

     process.ErrorDataReceived += (sender, args) => 
     { 
      Console.WriteLine(args.Data); 
     }; 

     process.OutputDataReceived += (sender, args) => 
     { 
      Console.WriteLine(args.Data); 
     }; 


     process.BeginOutputReadLine(); 
     process.BeginErrorReadLine(); 

は、ソリューションが含まれており、packageFolderフォルダがWebプロジェクトのバイナリが含まれている:これは、TESTSERVERの代わりに使用すること自由に感じ、私が今使っているコードです。あなたのプロジェクトの出力ディレクトリ)。

関連する問題