2010-07-06 95 views
5

我有一個ASP.NET MVC應用程序,它返回404並偶爾會在各個適當的點返回500個狀態碼。在web.config中使用自定義錯誤設置時出現IIS7'單行'錯誤

Response.StatusCode = (int)HttpStatusCode.NotFound; 

當我設置狀態碼的一個,我也相應地設置TrySkipIisCustomErrors屬性。

Response.TrySkipIisCustomErrors = true 

我想什麼現在要做的,就是將IIS配置爲通過這些錯誤,我設置了自己,捕獲可能發生的任何其他錯誤(如靜態文件,其中我不是404將請求發送到ASP.NET,或者未捕獲的500錯誤在我的應用程序(其中想必TrySkipIisCustomErrors歡迎使用屬性將不會被框架集)

我system.webServer/httpErrors節點看起來是這樣的:

<httpErrors existingResponse="Auto" errorMode="Custom"> 
</httpErrors> 

這會返回我自己的ASP.NET錯誤,其中I集TrySkipIisCustomErrors = true,並且未捕獲500S標準IIS錯誤頁面,靜態文件404等

然後我試圖改變這樣的:

<httpErrors existingResponse="Auto" errorMode="Custom" defaultPath="/Skins/Shared/Error/Error.html" defaultResponseMode="ExecuteURL"> 
    <clear /> 
</httpErrors> 

我認爲,這應該顯示我的自定義錯誤頁標準的IIS一個地方。但是,當我添加此代碼時,出現一行IIS錯誤(「由於發生內部服務器錯誤而無法顯示頁面」),並且它返回500狀態碼。

我認爲這是由於我的配置錯誤,但我不能爲我的生活理解我做錯了什麼!

我也嘗試過這種方法,具有相同的結果:

<httpErrors existingResponse="Auto" errorMode="Custom" defaultPath="Skins\Shared\Error\Error.html" defaultResponseMode="File"> 
    <clear /> 
</httpErrors> 

即使設置一個重定向到一個完全不同的URL產生同樣的問題。

我一直在使用此頁面作爲參考:http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx

錯誤文件肯定存在,我可以直接使用瀏覽器打它。另外,我不完全確定我應該如何處理system.Web \ customErrors節點。這是僅用於IIS6的設置,還是與ASP.NET有關?目前我不包括它在我的web.config。

+0

你能想出來嗎?我遇到了同樣的問題:s – Robba 2011-04-15 14:22:49

+0

Windows事件日誌中有哪些錯誤?你有應用程序池'管理流水線模式'設置爲'集成'或'經典'模式嗎? (對於您的方案應該是「集成的」。) – 2011-09-13 14:08:18

+0

應用程序池處於集成模式。仍然有問題,並一直無法找到解決方案。事件日誌中沒有錯誤。相當令人沮喪! – Jamie 2011-09-14 15:34:09

回答

1

將此添加到您的system.webserver節點。它會告訴IIS讓ASP.Net處理錯誤。

<httpErrors existingResponse="PassThrough" /> 
+0

謝謝你幫我停止拉我的頭髮,愚蠢的iis不讓我回到500像我想要的迴應 – 2012-09-21 15:01:07

1

我知道這是一個老問題,但它與我過去幾天剛纔發現的問題是一致的。什麼工作對我來說:

嘗試從web.config中去掉

<httpErrors> 

元素完全。

相關問題