如何指示 IIS 使用从 web.config 到 运行 .net 核心应用程序的环境变量?
How to instruct IIS to use environment variable from web.config, to run the .net core application?
最近,我在 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 Hosting environment: Development;Development
我遇到了关于 IIS 的问题,我用标签更改了 applicationHost.config。现在我可以在不同的环境中使用相同的 IIS。对于每个网络应用程序。
为了解决这个问题,我们必须在 system
级别或 web.config
文件中设置环境变量。 (如果我们在两个地方都设置环境变量,它会被.net core 2.2 framework追加)
在我看来,这似乎是一种奇怪的行为,所以我在 GitHub/AspNetCore 中提出了这个问题,以了解其他社区用户的想法,希望这个问题能尽快得到解决。
最近,我在 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 Hosting environment: Development;Development
我遇到了关于 IIS 的问题,我用标签更改了 applicationHost.config。现在我可以在不同的环境中使用相同的 IIS。对于每个网络应用程序。
为了解决这个问题,我们必须在 system
级别或 web.config
文件中设置环境变量。 (如果我们在两个地方都设置环境变量,它会被.net core 2.2 framework追加)
在我看来,这似乎是一种奇怪的行为,所以我在 GitHub/AspNetCore 中提出了这个问题,以了解其他社区用户的想法,希望这个问题能尽快得到解决。