2011-06-06 55 views
2

我有一個奇怪的問題,我正在尋找一些調試指針。當一個頁面已從網站中刪除時,我執行以下操作:在生產環境中未返回ASP.NET MVC視圖

Response.StatusCode = 410; 
Response.Status = "410 Gone"; 
return View("PageRemoved"); 

在開發環境中,它工作正常。在瀏覽器中,瀏覽器只需打印:「您請求的頁面已被刪除。」但視圖不呈現。在兩種環境中都會返回410狀態。有一次,這是在刺激,但我不知道什麼時候。

是否有可能IIS攔截410返回碼並打印此消息?如果是這樣,那麼在IIS中這將被設置?你將如何調試? (我在代碼中放置了日誌語句,代碼路徑在兩種環境中都是相同的。)

回答

5

IIS可能會攔截錯誤響應並提供自定義頁面。您可以爲IIS中的410個錯誤設置自定義錯誤頁面,以便在您的網站上執行指定的URL(或者如果您願意,可以使用靜態頁面)。您可以在找到該選項您的站點>錯誤頁面>添加

您也可以嘗試在你的控制器動作以下返回結果前:

Response.TrySkipIisCustomErrors = true; 
+0

吉布森先生 - 你是天才!我需要坐下來檢查Response對象的每個屬性,並查看其中還有哪些其他寶石。謝謝你的幫助! – Guy 2011-06-17 05:13:47