【发布时间】:2019-05-24 11:25:16
【问题描述】:
最近,我在 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>
程序.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 托管环境:开发;开发
【问题讨论】:
-
你确定它不仅仅是被错误地写入你的日志吗?
-
是的,我确定,因为我通过在 web.config 文件中设置
stdoutLogEnabled="true"获得了他的信息 -
即使是这样,也不应该导致您看到的错误。
-
实际上我从
appsettings.development.json文件中读取了一些配置信息,因为IIS 将环境变量解释为Development;Development,实际的appsettings.development.json文件没有加载到应用程序中。因此,当我在启动应用程序时尝试访问appsettings.development.json文件中的配置信息时,会出现 NULL 引用异常。 -
那你应该先解决这个问题。
标签: iis .net-core asp.net-core-2.2