2016-08-03 1 views
2

다음과 같은 웹 프로젝트 중 하나를 시작하는 콘솔 앱이 있습니다.OWIN TestServer 및 ConfigurationManager 사용

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

시작시 웹 프로젝트의 값을 web.config appSettings에서 확인해야합니다. 그러나 이들은 모두 빠져 있습니다. ConfigurationManager.AppSettings은 웹 프로젝트가 아닌 콘솔 앱 appSettings를 보여줍니다. 분명히하려면 ConfigurationManager.AppSettings 전화는 웹 프로젝트 내부에서 온 것입니다.

TestServer에서 실행할 때 web.config를 사용하려면 어떻게해야합니까?

답변

0

비슷한 문제가 있습니다. 처음에는 전체 web.config 앱 설정 섹션을 테스트 프로젝트의 app.config에 복사했습니다. 그런 다음 OwinHost.exe을 발견합니다. 이름에서 알 수 있듯이 현재 디렉토리에서 시작 클래스를 찾고 실행합니다. 그것의 Becuase, 그것은 실제로 올바른 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 폴더가 웹 프로젝트의 바이너리가 포함되어 있습니다 : 이것은 TESTSERVER 대신 사용 주시기 내가 지금 사용하고있는 코드입니다 프로젝트의 출력 디렉토리).