为什么 Visual Studio 2017 在 运行 时重置 .NET Core web.config 文件

Why Visual Studio 2017 resets .NET Core web.config file while running

自从我重新安装 Visual Studio 2017 Enterprise 后,我一直遇到这个奇怪的问题。我有一个 .NET 核心应用程序,其中包含以下 web.confg 文件。

 <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="true" />

如您所见,它使用直通身份验证。但是每当我通过 IDE 运行 应用程序时,它只是覆盖上面的行并将 forwardWindowsAuthToken 重置为 false。反过来,无法在浏览器中工作并给出 401 - 未经授权的错误。我已经重新安装了 VS,重置了设置,甚至多次清除了我的代码存储库,但仍然没有成功。

如有任何帮助,我们将不胜感激。

原因是,您已使用 IIS Express 配置了启动项目。web.config 文件值是 运行 正确需要的。要更改值以使用常规 IIS,请转到项目属性并在“调试”选项卡中 select 启动:IIS,而不是 IIS Express。这仍然会覆盖您的值,但至少 IIS 集成会​​起作用。

当您使用 .NET Core 自托管、使用 .exe 文件时,您可以安全地忽略 web.config 值,因为当您以这种方式自启动应用程序时,web.config 会被忽略。