2013-12-10 54 views
2

改變當試圖訪問控制器動作不存在,一個HttpException登記在Application_OnError在global.asax中,和Response.StatusCode被設置爲200。響應的StatusCode misteriously從200到404

然而,之後當達到Application_EndRequest時,Response.StatusCode被設置爲404.

什麼模塊負責這種狀態碼的改變。一定有什麼一直在分析HttpException,雖然我無法根據弄清楚它是什麼決定了它應改爲404

編輯:

也許我並不清楚。我沒有將響應代碼設置爲200.這是我僅查看的內容,它是由其他內容(可能是MVC)設置的。

+1

爲什麼當一個404實際上會發生什麼時,你想返回一個OK? – Robert

+0

我不想返回200.我只是對將它設置爲404 /哪個模塊正在連接的模塊感興趣。是MVC還是其他? –

回答

1

你一定是忘了清除服務器錯誤在你Application_Error響應代碼設置爲200後:

Server.ClearError(); 

這是說,返回時的網址不存在200 OK狀態代碼是非常計數器直觀,反對SEO和打破HTTP狀態協議。

+0

我沒有把它設置爲200,也沒有試圖保持它的價值。我正在尋找一個模塊,在兩個應用程序事件之間的背景中將200更改爲404。 –