![](/img/trans.png)
[英]ASP.NET Core 2.2 How to share web.config/launchSettings.json files among projects
[英]Why do environmentVariables from launchSettings.json profiles not load when aspNetCore web.config sections exist?
我们最近将 .NET Core 2.1 Web App 升级到 .NET 3.1。 从那以后,我们在 launchSettings.json 中的配置文件无法正常工作。 具体来说,环境变量没有加载,特别是“ASPNETCORE_ENVIRONMENT”。 在本地调试以针对不同环境时,我们使用它来切换 appSettings.{Environment}.json。
在我的研究中,似乎 web.config 是这个问题的罪魁祸首。 作为上下文,我们在项目中保留了 web.config,以便我们可以为我们的部署定制一些东西。 有问题的配置文件使用 IISExpress,因此考虑了 web.config。
如果我删除 web.config,我可以切换启动配置文件并且它们生效。 但是,当 web.config 存在时,启动配置文件环境变量不会生效。
现在更奇怪的是,如果我从 web.config 中删除这一部分,启动设置中的环境变量将再次开始工作:
这可能与 Hosting Model 从 OutOfProcess(.NET 2.1 默认)更改为 InProcess(.NET 3.1 默认)有关。 事实上,如果我们强制项目的 hostingModel 为 OutofProcess,启动配置文件也可以工作,但如果可能,我们宁愿保留 InProcess。
那么这里发生了什么? 我们是否缺少一些迁移步骤? 我们遵循 MSDN 上的所有步骤,从这里开始直到 3.1: https://docs.microsoft.com/en-us/aspnet/core/migration/21-to-22?view=aspnetcore-3.1&tabs=visual -工作室
"environmentVariables": { "ASPNETCORE_ENVIRONMENT": "SomeTestValue" }
Configure
中IWebHostEnvironment
上的环境值。env.EnvironmentName
应与“SomeTestValue”匹配。<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="aspNetCore" />
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" stdoutLogEnabled="false" arguments="%LAUNCHER_ARGS%" hostingModel="inprocess" />
</system.webServer>
</configuration>
天哪,它是 Visual Studio。 我正在运行 VS 2019 16.6.2 ,我刚刚收到今天更新到 16.6.3 的通知,但推迟了它。 好吧,在研究了整个堆栈、github、msdn 等之后,我发现这些帖子让我看到这是 VS 的 16.6.2 版本中的一个错误(也可能是早期版本),以及刚刚发布的更新修复它。
ASP.Net Core MVC 需要 web.config 中的 <environmentVariables> 才能工作
这导致: https://github.com/dotnet/websdk/issues/564#issuecomment-644714341
这导致了关于 VS 更新的评论: https://github.com/dotnet/websdk/issues/1510#issuecomment-652012087
该评论中链接的文档没有具体提及此修复程序。 我找不到完整的发行说明。 https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes#16.6.3
但无论如何,更新到 VS 2019 16.6.3 有效。 我可以保留我的 aspNetCore web.config 设置,并且现在可以正确加载启动配置文件环境变量。 嘘!
谈论更新的最佳时机......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.