錯誤氣泡我試圖解決我的錯誤處理MVC了一下,從這裏實施Marco的解決方案:
ASP.NET MVC 404 Error Handling404通過MVC差錯控制
這完美的作品我Win7的工作站上。但由於某種原因,它不能在服務器上運行。 某些錯誤工作正常,但是例如,如果我調用一個不存在的控制器和路由,我將獲得標準的IIS 404頁面。
我已經放入了一些日誌,並調用Error404Controller並執行,但由於某種原因,處理不會停止,並且之後會加載IIS 404錯誤頁面。
這是我的Global.asax
protected void Application_EndRequest()
{
if (Context.Response.StatusCode == 404)
{
Response.Clear();
var rd = new RouteData();
rd.Values["controller"] = "Error404";
rd.Values["action"] = "Index";
IController c = new SuperMvc.Controllers.Error404Controller();
c.Execute(new RequestContext(new HttpContextWrapper(Context), rd));
}
}
代碼而這個控制器:
[AcceptVerbs(HttpVerbs.Get)]
public virtual ActionResult Index()
{
log.Error("Error404Controller.Index");
PageError error = new PageError();
error.Url = Request.Url.AbsoluteUri;
log.Error("Request.Url=" + error.Url);
error.UrlReferrer = Request.UrlReferrer.AbsoluteUri;
log.Error("Request.UrlReferrer=" + error.Url);
return View(error);
}
任何想法?我檢查了web.config文件並找不到區別。
當您嘗試控制器/動作不存在,你登錄狀態碼?當它達到這一點時它絕對是404嗎? (我想有時我曾經得到等等沒有實現IController - 這將是一個代碼500) – Carl 2014-10-03 11:14:34
不,我在Application_EndRequest中得到404響應代碼並調用Error404Controller,但我仍然得到IIS 404錯誤頁面,而不是我的。 – Remy 2014-10-16 12:42:10