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

kra*_*ore 6 web-config iis-10 asp.net-core

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

<configuration>
    <system.web>
        <customErrors mode="Off" />
    </system.web>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我重新启动 IIS 后,什么也没发生。客户端仍然收到默认错误:

在此处输入图片说明

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

kra*_*ore 11

网页配置

<system.webServer>
    <httpErrors errorMode="Detailed" />
    <aspNetCore processPath="dotnet">
        <environmentVariables>
            <environmentVariable name="ASPNETCORE_DETAILEDERRORS" value="true" />
        </environmentVariables>
    </aspNetCore>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)


huj*_*omi 7

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

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Home/Error");
}
Run Code Online (Sandbox Code Playgroud)

如果仅用app.UseDeveloperExceptionPage();它替换此部件,它将始终显示详细的错误消息。

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

  • 如果您检查链接,您将看到“ASP.NET Core 在应用程序启动时读取环境变量 ASPNETCORE_ENVIRONMENT”,因此如果您在命令行中`set ASPNETCORE_ENVIRONMENT=Development` 它应该可以工作。 (2认同)

小智 5

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

<environmentVariables>
  <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
Run Code Online (Sandbox Code Playgroud)

更多信息:启用开发者异常页面