2
在我的asp.net mvc 3應用程序中,我做了一些錯誤處理,我很高興它的工作。它在本地計算機上正常工作。但在託管iis或許用自己的錯誤頁面替換錯誤視圖。我想,我幾乎可以肯定這是因爲Response.TrySkipIisCustomErrors
。在asp.net mvc 3中的錯誤處理在主機上無法正常工作
但我把Response.TrySkipIisCustomErrors
設置爲true;
並沒有任何效果。
的web.config
<customErrors mode="Off"></customErrors>
的Global.asax
void Application_Error(object sender, EventArgs e)
{
var exception = Server.GetLastError();
Response.Clear();
Server.ClearError();
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
Response.TrySkipIisCustomErrors = true;
var routeData = new RouteData();
routeData.Values["controller"] = "Errors";
routeData.Values["action"] = "ServerError";
var httpException = exception as HttpException;
if (httpException != null)
{
Response.StatusCode = httpException.GetHttpCode();
switch (Response.StatusCode)
{
case 403:
routeData.Values["action"] = "Unathorized";
break;
case 404:
routeData.Values["action"] = "NotFound";
break;
}
}
IController errorsController = new ErrorsController();
var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
errorsController.Execute(rc);
}
如何改寫這個代碼來獲取IIS上託管手柄errros因爲我想要的。
恕我直言,你不會得到很多答案,因爲這不是處理MVC錯誤的正確方法。在我轉換到正確的錯誤處理之前,我用類似的解決方案掙扎了很多,正如我在這裏所描述的:http://blog.gauffin.org/2011/11/how-to-handle-errors-in-asp-net -mvc/ – jgauffin
檢查我的答案在這裏:http://stackoverflow.com/questions/6033681/how-to-override-httperrors-section-in-web-config-asp-net-mvc3/8403396#8403396 –