2016-03-11 93 views
1

我在ASP中實現了自定義404頁面。 NET MVC 5應用程序,起初我已經在我的本地主機上進行了測試,並且完美運行。但是當我將我的設置移動到釋放配置並嘗試在生產環境中測試它時,自定義404頁面消失了,默認的mvc錯誤頁面出現了。我做錯了什麼?自定義錯誤頁面在生產中不工作

的Web.config

<system.webServer> 
    <httpErrors errorMode="Custom" existingResponse="Replace"> 
     <remove statusCode="404" /> 
     <error statusCode="404" responseMode="ExecuteURL" path="/Error/Index" /> 
    </httpErrors> 
</system.webServer> 

控制器

public class ErrorController : BaseController 
{ 
    public ActionResult Index(string id) 
    { 
     ViewModel vm = new ViewModel(); 

     Response.StatusCode = 404; 

     return View("~/Views/..../Index.cshtml", vm); 
    } 
} 

enter image description here

+0

您正在使用哪個版本的IIS? – SamGhatak

+0

我正在運行Windows Server 2012 R2,所以它應該是IIS 8.5 –

+0

我正在調查這件事,同時我發現[this](http://stackoverflow.com/questions/6648007/iis7-custom-404-not-顯示)鏈接,你可以試試這個嗎? – SamGhatak

回答

0

嘗試增加這配置文件

<customErrors mode ="on" defaultRedirect=""> 

</customErrors> 
1

我記得它必須在<system.web>下設置。這是應該的。

<customErrors mode="Off" defaultRedirect="/Error/Index"> 
    <error statusCode="404" redirect="/Error/Index" /> 
</customErrors> 

所以設置mode="Off"mode="On"將切換自定義錯誤頁和關閉。

+1

'customErrors'和'httpErrors'是兩個不同的野獸。 ['customErrors'](https://msdn.microsoft.com/en-us/library/h0hfz6fc%28v=vs.100%29.aspx)處理.Net失敗錯誤頁面,而['httpErrors'](https: //www.iis.net/configreference/system.webserver/httperrors)適用於IIS默認錯誤頁面。 'customErrors'不包含不涉及.Net管道的情況,如靜態資源上的請求。 –

+0

聽起來很酷!感謝信息夥伴。 –

相關問題