В моем приложении asp.net mvc 3 я сделал некоторую обработку ошибок, и я рад, что она работает. Он работает правильно на локальном компьютере. Но на хостинге iis, возможно, заменяет просмотры ошибок своими страницами ошибок. Я думаю и почти уверен, что это из-за Response.TrySkipIisCustomErrors
.
Но я установил 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 на хосте обрабатывал ошибки, как я хочу.