2011-08-04 46 views
3

如何使用web.config設置404和其他錯誤頁面?我曾嘗試在web.config中添加以下塊。Asp.net - Web.Config - 自定義錯誤

 <customErrors defaultRedirect="Forms/Errors/Page_404.aspx" mode="On"> 
    <error statusCode="500" redirect="servererror.aspx" /> 
     <error statusCode="403" redirect="NoAccess.htm" /> 
     <error statusCode="404" redirect="Forms/Errors/Page_404.aspx" /> 
    </customErrors> 

但仍顯示IIS7的默認錯誤頁面。如何解決這個問題?

回答

9

我自己解決了。我們需要在web.config中添加另一個部分,使其在IIS 7/7.5中可以工作。對於IIS 6,我在我的問題中提到的那個工作

<system.webServer> 
... 
<httpErrors errorMode="Custom" > 
<remove statusCode="403" subStatusCode="-1" /> 
<remove statusCode="404" subStatusCode="-1" /> 
<remove statusCode="500" subStatusCode="-1" /> 
<error statusCode="404" path="/404.aspx" responseMode="Redirect" /> 
<error statusCode="403" path="/403.aspx" responseMode="Redirect" /> 
<error statusCode="500" path="/500.aspx" responseMode="Redirect" />   
</httpErrors> 
... 
</system.webServer> 

感謝大家的回答。

1

嘗試把這個在你的web.config的system.webServer部分

<system.webServer> 
    <httpErrors existingResponse="PassThrough" /> 
</system.webServer> 
0

嘗試 「〜/」 的路徑前增加:

<customErrors defaultRedirect="~/Forms/Errors/Page_404.aspx" mode="On"> 
<error statusCode="500" redirect="~/servererror.aspx" /> 
    <error statusCode="403" redirect="~/NoAccess.htm" /> 
    <error statusCode="404" redirect="~/Forms/Errors/Page_404.aspx" /> 
</customErrors> 
+0

讓我在Visual Studio的內部服務器上更正我的問題,它的工作原理是這樣,但在IIS下運行時不起作用。任何具體原因? – Riz

0

它看起來像你使用那裏有相對的路徑。這可能是問題嗎?

嘗試使用Fiddler來查看您的瀏覽器被重定向到的頁面。

+0

讓我糾正我的問題,它在Visual Studio的內部服務器中工作,但在IIS下運行時不起作用。任何具體原因? – Riz