gpt4 book ai didi

c# - 使用 OWIN TestServer 和 ConfigurationManager

转载 作者:太空宇宙 更新时间:2023-11-03 15:16:57 24 4
gpt4 key购买 nike

我有一个控制台应用程序,它使用以下内容启动我们的一个 Web 项目。

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

Web 项目启动时需要检查其 web.config appSettings 中的值。然而这些都不见了。 ConfigurationManager.AppSettings 显示控制台应用程序 appSettings 而不是 Web 项目。需要明确的是,ConfigurationManager.AppSettings 调用来自 Web 项目内部。

如何让 Web 项目在从 TestServer 运行时使用 web.config?

最佳答案

我有类似的问题。起初,我只是将整个 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 项目二进制文件的文件夹(项目的输出目录)。

关于c# - 使用 OWIN TestServer 和 ConfigurationManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38738525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com