2010-01-29 75 views
14

我有一個ASP.Net網站,我想使用自定義錯誤頁面。我把下面的代碼在我的web.config在ASP.Net網站上實現自定義錯誤頁面

<customErrors mode="On" defaultRedirect="~/error.aspx"> 
    <error statusCode="404" redirect="~/error.aspx" /> 
</customErrors> 

的問題是,當我去了一個不存在仍然是使用在IIS管理器中指定的404錯誤頁面的URL。

問題:我該如何使用我創建的error.aspx頁面?爲什麼IIS管理器中的設置會覆蓋web.config?

+0

我在Server 2003上使用IIS 6。 – Yeodave 2010-01-29 11:13:23

回答

23

嘗試這種方式,幾乎相同..但這就是我所做的工作。

<configuration> 
    <system.web> 
     <customErrors mode="On" defaultRedirect="apperror.aspx"> 
      <error statusCode="404" redirect="404.aspx" /> 
      <error statusCode="500" redirect="500.aspx" /> 
     </customErrors> 
    </system.web> 
</configuration> 

或嘗試從IIS設置更改404錯誤頁面(如果需要的話)。

+0

如果我在標記之外有標記,則會顯示錯誤消息。 我必須在錯誤標籤後加上標籤,但它仍然不起作用。 – Yeodave 2010-01-29 12:15:32

1
<customErrors defaultRedirect="~/404.aspx" mode="On"> 
    <error statusCode="404" redirect="~/404.aspx"/> 
</customErrors> 

上面的代碼只對「找不到網頁錯誤-404」,如果文件擴展名是已知的(html的,的.aspx等)

在它旁邊,你也已經爲擴展不知道或客戶錯誤不正確爲

.aspwx.vivaldo。你必須在web.config

<httpErrors errorMode="Custom"> 
     <error statusCode="404" prefixLanguageFilePath="" path="/404.aspx"   responseMode="Redirect" /> 
</httpErrors> 
<modules runAllManagedModulesForAllRequests="true"/> 

添加httperrors設置,它必須是內<system.webServer></system.webServer>

4

有2種方式來配置自定義錯誤頁的ASP.NET網站:

  1. Internet信息服務(IIS)管理器(GUI)
  2. web.config文件

本文介紹如何做到每個:

error.aspx頁面不顯示可能是因爲你有你的web.config錯誤的原因。試試這個:

<configuration> 
    <system.web> 
     <customErrors defaultRedirect="error.aspx" mode="RemoteOnly"> 
     <error statusCode="404" redirect="error.aspx"/> 
     </customErrors> 
    </system.web> 
</configuration> 

您可能需要確保在IIS管理器Error Pages - 功能委派設置爲讀/寫

IIS Manager: Feature Delegation panel

而且,這個答案可以幫助你配置web.config文件: