2009-09-02 26 views
1

我把整個設置自定義錯誤頁的網頁例子來,人們做這樣的事情:Web.config中的錯誤標記customerErrors部分需要Int32 statusCode?

<customErrors mode="RemoteOnly" defaultRedirect="GeneralError.aspx"> 
    <error statusCode="401.2" redirect="4012Error.htm"/> 
</customErrors> 

我知道,一個401.2重定向有自己的一套頭痛,但IIS不抱怨說。這是當我瀏覽我的網站時它給我的:

解析器錯誤消息:屬性'statusCode'的值無法解析。錯誤是:401.2不是Int32的有效值。

如果我將它更改爲「401」,它工作正常。即使Intellisense也抱怨statusCode需要成爲Int32。

人們如何使用子碼?我當然不能!

非常感謝!

回答

0

http://msdn.microsoft.com/en-us/library/aa478979.aspx Windows下

基本身份驗證,通過 默認情況下,將允許三次嘗試在 正確的用戶名和密碼 組合。如果所有三個都失敗,那麼 將發送HTTP 401.2未經授權的 錯誤。由於基本身份驗證是 由IIS執行而不是由ASP.NET執行,因此無法創建自定義錯誤 頁面,因爲ASP.NET永遠不會有 機會來查看請求。

你可以在你的global.asax文件中放置一些代碼來捕獲這些類型的錯誤嗎?您只需要注意global.asax文件在每個頁面請求上執行,因此請確保您具有有效的檢查以防止在訪問默認頁面和登錄頁面之前進行重定向。

您也可以進入IIS並更改默認錯誤頁面以指向您的網站的此錯誤的URL。

+0

這是我使用的表示用於錯誤引導一個401.2: http://www.flimflan.com/blog/HttpModuleToAllowACustomErrorPageFor4012AccessDeniedInASPNET.aspx 它把一個HttpHandler中,我認爲強制IIS處理我的customError。 我更改了IIS中的默認錯誤頁面,但由於我的錯誤頁面上包含圖形和CSS,因此頁面無法正確加載。只顯示HTML - 圖形和CSS出現401.2錯誤,並且不顯示。 我看到一些帖子,人們抱怨說global.asax沒有爲他們工作,這就是爲什麼我嘗試httpmodule方法。 – TimH 2009-09-03 12:52:17