web.config中的httperrors

Nut*_*ant 5 razor asp.net-mvc-3

当503服务无法使用的错误来临时,我正在尝试使用简单的html页面.

我在下面的web.config的system.webservers中使用

<httpErrors errorMode="Custom">
  <remove statuscode="503" substatuscode="-1">
  <error statuscode="503" responseMode="File" path="Views/Shared/IISError.htm">
</httpErrors>
Run Code Online (Sandbox Code Playgroud)

这不行.我停止申请时仍然会收到IIS默认页面.

我正在使用mvc3,razor应用程序.

Jup*_*aol 7

我花了一段时间来解决这个问题......但我认为这可能会对你有所帮助:

首先,要在IIS 7中配置错误,您需要使用以下部分来完成:

  <system.webServer>
    <httpErrors existingResponse="Replace" defaultResponseMode="Redirect" errorMode="Custom">
      <remove statusCode="503"/>
      <error statusCode="503" responseMode="Redirect" path="Views/Shared/IISError.htm"/>          
    </httpErrors>
  </system.webServer>
Run Code Online (Sandbox Code Playgroud)

此配置有效,但是您可能会收到一条错误,指示您无法覆盖该httpErrors部分,如果是这种情况,请执行以下步骤:

  1. 打开 C:\Windows\System32\inetsrv\config\applicationHost.config

  2. 更改:

    <section name="httpErrors" overrideModeDefault="Deny" />
    
    Run Code Online (Sandbox Code Playgroud)

    至:

    <section name="httpErrors" overrideModeDefault="Allow" />
    
    Run Code Online (Sandbox Code Playgroud)


tor*_*orm 2

问题是,您使用的是 VisualStudio Development Server 还是 IIS7 Express ?

如果您正在使用 Cassini (VSDS) 那么您应该尝试

<customErrors mode="On" >
  <error statusCode="503" redirect="/Views/Shared/Error.htm"/>
</customErrors>
Run Code Online (Sandbox Code Playgroud)

因为 httpErrors 是一个新结构,仅由 IIS7 处理。您可以找到更多信息:CustomErrors 和 httpErrors 之间有什么区别?http://www.iis.net/ConfigReference/system.webServer/httpErrors