我有一个控制台应用程序,启动我们的一个网络项目与以下。
using (var server = TestServer.Create<Startup>())在启动时,web项目需要检查它的web.config appSettings中的值。然而,这些都缺失了。ConfigurationManager.AppSettings显示的是控制台应用程序appSettings,而不是web项目。需要说明的是,ConfigurationManager.AppSettings调用来自web项目内部。
如何让web项目在从TestServer运行时使用web.config?
发布于 2016-11-09 22:29:38
我也有过类似的问题。首先,我只是将整个web.config应用程序设置部分复制到测试项目的app.config中。然后我发现了OwinHost.exe,它(顾名思义)只是在当前目录中查找启动类并运行它们。因此,它实际上将使用正确的web.config。这是我现在正在使用的代码,请随意使用它,而不是TestServer:
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();其中solutionRootPath是包含解决方案的目录,packageFolder是包含web项目(项目的输出目录)的二进制文件的文件夹。
https://stackoverflow.com/questions/38738525
复制相似问题