C# IIS显示标准黄色页面,而不是定义的自定义错误页面

C# IIS显示标准黄色页面,而不是定义的自定义错误页面,c#,asp.net,asp.net-mvc,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 5,我已经在IIS中定义了自定义错误页面(即http状态代码500),如果我从控制器返回状态代码500,这些页面将正常工作。但如果应用程序中存在未处理的异常,iis将显示状态代码为500的标准黄页。所以我希望IIS显示我的自定义错误页面,但它没有发生 有没有办法强制IIS在异常情况下显示自定义错误页面?您应该将其添加到web.config的部分: <customErrors mode="On" defaultRedirect="~/path/to/error"> <erro

我已经在IIS中定义了自定义错误页面(即http状态代码500),如果我从控制器返回状态代码500,这些页面将正常工作。但如果应用程序中存在未处理的异常,iis将显示状态代码为500的标准黄页。所以我希望IIS显示我的自定义错误页面,但它没有发生


有没有办法强制IIS在异常情况下显示自定义错误页面?

您应该将其添加到
web.config
部分:

 <customErrors mode="On" defaultRedirect="~/path/to/error">
   <error statusCode="413" redirect="~/path/to/error" />
   ...
   ...
</customErrors>

...
...

我的建议是只在生产环境中这样做,因为“黄页”在开发模式下非常有用,可以识别错误(例如,您只能将其添加到web.release.config中)。

您应该将其添加到
web.config
部分:

 <customErrors mode="On" defaultRedirect="~/path/to/error">
   <error statusCode="413" redirect="~/path/to/error" />
   ...
   ...
</customErrors>

...
...
我的建议是只在生产环境中这样做,因为“黄页”在开发模式下非常有用,可以识别错误(例如,您只能将其添加到web.release.config中)。

内部
添加

<httpErrors errorMode="Custom" existingResponse="Replace">
  <remove statusCode="500" subStatusCode="-1" />
  <error statusCode="500" subStatusCode="-1" prefixLanguageFilePath="" path="/somePage.html" responseMode="Redirect" />
</httpErrors>

内部
添加

<httpErrors errorMode="Custom" existingResponse="Replace">
  <remove statusCode="500" subStatusCode="-1" />
  <error statusCode="500" subStatusCode="-1" prefixLanguageFilePath="" path="/somePage.html" responseMode="Redirect" />
</httpErrors>



检查您的web配置,您需要关闭调试模式并在此处启用自定义页面。微软在这方面有很好的文档,因为我说过,如果我从服务器返回500,错误页面会正确显示,但不会出现异常。调试是否显式关闭?您所说的调试是什么意思?将模式设置为关闭?它显示完整的黄色页面和堆栈跟踪,这不是我想要的。我在IIS中定义了自定义错误页。这是用于启用/禁用调试的Microsoft文档,您需要关闭它才能显示自定义页,因为您将获得堆栈跟踪。否则,请检查web配置,您需要关闭调试模式并在此处启用自定义页。微软在这方面有很好的文档,因为我说过,如果我从服务器返回500,错误页面会正确显示,但不会出现异常。调试是否显式关闭?您所说的调试是什么意思?将模式设置为关闭?它显示完整的黄色页面和堆栈跟踪,这不是我想要的。我在IIS中定义了自定义错误页。这是用于启用/禁用调试的Microsoft文档,您需要将其关闭才能显示自定义页,因为您将获得堆栈跟踪,否则,正如我所说,我在IIS中定义了自定义错误页(我假设这与在web.config中配置自定义错误相同)当我从服务器返回500时,它们会工作,但如果抛出未处理的异常,则不会工作。IIS错误页与应用程序错误页不同。如果出现异常,ASP.NET管道会将您重定向到黄页,而不是IIS标准错误页。这就是为什么您可以看到错误文本、堆栈跟踪、ecc。您需要使用web.config更改正在使用的应用程序的此行为。希望能有所帮助:)正如我所说,我在IIS上定义了自定义错误页(我假设这与在web.config中配置customErrors相同),当我从服务器返回500时,它们可以工作,但如果引发未处理的异常,则不能工作。IIS错误页与应用程序错误页不同。如果出现异常,ASP.NET管道会将您重定向到黄页,而不是IIS标准错误页。这就是为什么您可以看到错误文本、堆栈跟踪、ecc。您需要使用web.config更改正在使用的应用程序的此行为。希望有帮助:)定义httpErrors与在IIS上定义错误页不同吗?这会给您一个简要的概述吗?为500设置httpErrors不会在未处理的异常上显示错误页。定义httpErrors与在IIS上定义错误页不同吗?这会给您一个简要的概述吗?为500设置httpErrors不会显示错误关于未处理异常的页面。