Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用OWIN TestServer和ConfigurationManager_C#_Owin - Fatal编程技术网

C# 使用OWIN TestServer和ConfigurationManager

C# 使用OWIN TestServer和ConfigurationManager,c#,owin,C#,Owin,我有一个控制台应用程序,它用以下内容启动我们的一个web项目 using (var server = TestServer.Create<Startup>()) 使用(var server=TestServer.Create()) 启动web项目时,需要检查其web.config appSettings中的值。然而,这些都不见了ConfigurationManager.AppSettings显示控制台应用程序AppSettings,而不是web项目。清除Configuration

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

using (var server = TestServer.Create<Startup>())
使用(var server=TestServer.Create())
启动web项目时,需要检查其web.config appSettings中的值。然而,这些都不见了
ConfigurationManager.AppSettings
显示控制台应用程序AppSettings,而不是web项目。清除
ConfigurationManager.AppSettings
调用来自web项目内部


如何让web project在从TestServer运行时使用web.config?

我遇到了类似的问题。首先,我只是将整个web.config应用程序设置部分复制到测试项目的app.config中。然后我发现,它(顾名思义)只是在当前目录中查找启动类并运行它们。因此,它实际上将使用正确的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项目二进制文件的文件夹(项目的输出目录)