如何设置 'web.config' 文件以显示完整的错误消息 (.NET Core 2.1)

How to set the 'web.config' file to show the full error message (.NET Core 2.1)

我在 IIS 上托管了我的 ASP.NET 核心应用程序(使用 publish-in- 文件夹方法)。我尝试创建自己的 web.config 文件以在客户端查看详细的错误消息。所以我添加了文件 web.config:

<configuration>
    <system.web>
        <customErrors mode="Off" />
    </system.web>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
    </system.webServer>
</configuration>

我重新启动 IIS 后,没有任何反应。客户端仍然出现默认错误:

我能否以某种方式获取有关使用文件 web.config 的错误的其他信息?

您可以在 Startup.cs 文件中配置它。默认情况下,它仅在开发模式下显示开发人员异常页面:

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Home/Error");
}

如果您仅将这部分替换为 app.UseDeveloperExceptionPage();,它将始终显示详细的错误消息。

您可以在此处阅读更多相关信息: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling?view=aspnetcore-2.1

web.config

<system.webServer>
    <httpErrors errorMode="Detailed" />
    <aspNetCore processPath="dotnet">
        <environmentVariables>
            <environmentVariable name="ASPNETCORE_DETAILEDERRORS" value="true" />
        </environmentVariables>
    </aspNetCore>
</system.webServer>

对我来说,启用 ASPNETCORE_DETAILEDERRORS 没有任何作用,但更改 ASPNETCORE_ENVIRONMENT 有效:

<environmentVariables>
  <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>

更多信息:Enable the Developer Exception Page

web.conf

<system.webServer>
  <httpErrors errorMode="Detailed" />
  <aspNetCore processPath="dotnet" arguments=".\DocExpressManager.Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
    <environmentVariables>
      <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
      <environmentVariable name="ASPNETCORE_DETAILEDERRORS" value="true" />
    </environmentVariables>
  </aspNetCore>
</system.webServer>