我在我的項目中實現了自定義錯誤功能,並且它在本地IIS上工作,但不在活服務器上工作。我已經使用Global.asax文件實現了此功能,並且在MVC中的自定義錯誤控制器中調用了我的自定義錯誤操作方法。我已經發布並運行本地IIS及其工作,但在實時服務器上運行。自定義錯誤頁面不在活服務器上工作
我的Global.asax.cs文件
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
//do not register HandleErrorAttribute. use classic error handling mode
filters.Add(new HandleErrorAttribute());
}
protected void Application_Error(Object sender, EventArgs e)
{
LogException(Server.GetLastError());
CustomErrorsSection customErrorsSection = (CustomErrorsSection)ConfigurationManager.GetSection("system.web/customErrors");
string defaultRedirect = customErrorsSection.DefaultRedirect;
if (customErrorsSection.Mod e== CustomErrorsMode.On)
{
var ex = Server.GetLastError().GetBaseException();
Server.ClearError();
var routeData = new RouteData();
routeData.Values.Add("controller", "Common");
routeData.Values.Add("action", "CustomError");
if (ex is HttpException)
{
var httpException = (HttpException)ex;
var code = httpException.GetHttpCode();
routeData.Values.Add("status", code);
}
else
{
routeData.Values.Add("status", 500);
}
routeData.Values.Add("error", ex);
IController errorController = new Test.Controllers.CommonController();
errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
}
}
我的自定義錯誤控制器及其操作方法
public ActionResult CustomError(int status, Exception error)
{
var model = new CustomErrorModel();
model.Code = status;
model.Description = Convert.ToString(error);
Response.StatusCode = status;
return View(model);
}
那麼,應該怎麼辦?
我建議你提供一些代碼讓我們來看看.. –
我們可以看到一些碼?你的web.config安裝是否正確?你還沒有給我們很多信息繼續下去。 –
本地IIS和Live IIS的含義是什麼?我認爲你需要檢查IIS配置。 –