即使使用调试配置发布,错误页面也没有详细信息
No detail on error page even if published with Debug configuration
我有一个 MVC Core 应用程序,在 VS 和 IIS Express 中的调试模式下完美运行 运行。然而,当我在 Release
配置下发布到 IIS 10 时,单击 Login
link 时发生错误。该站点显示完全无用的默认错误页面,该页面作为 MVC 应用程序的 VS 项目模板的一部分出现。此页面中唯一有用的信息是出现错误,并且:
Swapping to Development environment will display more detailed
information about the error that occurred.
所以我小心清理了 IIS 中网站指向的 publish 文件夹,并再次发布了应用程序,这次是在 Debug
配置下。
但我仍然得到完全相同的无用错误页面。这是 IIS 的问题,还是我做错了什么?
Debug/Release
配置默认与 Development/Production
环境无关。检查此 Environments section and Hosting settings 以了解如何设置所需的环境。最简单的方法是指定 ASPNETCORE_ENVIRONMENT
环境变量。
关于切换到开发环境将显示有关发生的错误的更多详细信息。
这大约是 WebHostDefaults.DetailedErrorsKey
settings:
When enabled (or when the Environment is set to Development), the app captures detailed exceptions.
您可以通过以下方式明确启用它:
WebHost.CreateDefaultBuilder(args)
.UseSetting(WebHostDefaults.DetailedErrorsKey, "true")
web.config中有一个good doc section about troubleshooting app deployed on IIS. Among other consider to enable ASP.NET Core Module stdout logs:
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout">
另外,对于详细的异常视图,您可以启用 Developer exception page。请记住,好的做法(出于安全原因)是为 Development
env 设置此页面:
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
一般来说最后一个(屁股似乎不是你的情况),你也可以通过 captureStartupErrors setting:
捕获启动错误
WebHost.CreateDefaultBuilder(args)
.CaptureStartupErrors(true)
我有一个 MVC Core 应用程序,在 VS 和 IIS Express 中的调试模式下完美运行 运行。然而,当我在 Release
配置下发布到 IIS 10 时,单击 Login
link 时发生错误。该站点显示完全无用的默认错误页面,该页面作为 MVC 应用程序的 VS 项目模板的一部分出现。此页面中唯一有用的信息是出现错误,并且:
Swapping to Development environment will display more detailed information about the error that occurred.
所以我小心清理了 IIS 中网站指向的 publish 文件夹,并再次发布了应用程序,这次是在 Debug
配置下。
但我仍然得到完全相同的无用错误页面。这是 IIS 的问题,还是我做错了什么?
Debug/Release
配置默认与 Development/Production
环境无关。检查此 Environments section and Hosting settings 以了解如何设置所需的环境。最简单的方法是指定 ASPNETCORE_ENVIRONMENT
环境变量。
关于切换到开发环境将显示有关发生的错误的更多详细信息。
这大约是 WebHostDefaults.DetailedErrorsKey
settings:
When enabled (or when the Environment is set to Development), the app captures detailed exceptions.
您可以通过以下方式明确启用它:
WebHost.CreateDefaultBuilder(args)
.UseSetting(WebHostDefaults.DetailedErrorsKey, "true")
web.config中有一个good doc section about troubleshooting app deployed on IIS. Among other consider to enable ASP.NET Core Module stdout logs:
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout">
另外,对于详细的异常视图,您可以启用 Developer exception page。请记住,好的做法(出于安全原因)是为 Development
env 设置此页面:
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
一般来说最后一个(屁股似乎不是你的情况),你也可以通过 captureStartupErrors setting:
捕获启动错误WebHost.CreateDefaultBuilder(args)
.CaptureStartupErrors(true)