如何设置 '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>
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>
我在 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>
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>