最近,在IIS上托管.net core 2.2应用程序时遇到一个奇怪的问题。
托管后,我收到“ 启动应用程序时发生错误”。为了确定根本原因,我启用了日志文件,发现它是由于环境变量问题引起的。
我在web.config
文件中配置了环境变量,如下所示,
<aspNetCore processPath="dotnet" arguments=".\PctrClient.Api.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
Program.cs
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseIISIntegration();
}
但是网络应用将其解释为Development;Development
。怎么可能?
日志文件中的信息
info托管环境:开发;开发
答案 0 :(得分:0)
我遇到了有关IIS的问题,并用标签更改了applicationHost.config。现在,我可以将同一IIS与不同的环境一起使用。每个Web应用程序。
答案 1 :(得分:0)
为了解决此问题,我们必须在system
级别或web.config
文件中设置环境变量。 (如果我们在两个地方都设置了环境变量,它将由.net core 2.2框架附加)
从我的角度看,这似乎是一种奇怪的行为,因此我在GitHub/AspNetCore中提出了此问题,以了解其他社区用户的想法,希望此问题能尽快得到解决。