MVC4 httpException.GetHttpCode(); вызывая NullReferenceException
Мне пришлось реструктурировать все мое приложение, от БД VS Express до использования Visual Studio 2012. Мне пришлось удалить все модалы и снова добавить их.
Теперь, когда я пытаюсь запустить приложение, оно продолжает падать на Global.Asax.cs
Он продолжает выдавать NullReferenceException -> intceptionType = httpException.GetHttpCode();
Мое приложение даже не запускается, кажется, что сервер localhost даже не загружает мой сайт
Помогите, пожалуйста
protected void Application_Error()
{
if (Context.IsCustomErrorEnabled)
ShowCustomErrorPage(Server.GetLastError());
}
private void ShowCustomErrorPage(Exception exception)
{
var httpException = exception as HttpException;
if (exception != null)
{
exception = httpException;
}
else
{
exception = new HttpException(500, "Internal Server Error", exception);
}
Response.Clear();
Server.ClearError();
var routeData = new RouteData();
routeData.Values.Add("Controller", "Error");
routeData.Values.Add("fromAppErrorEvent", true);
int exceptionType = httpException.GetHttpCode();
switch (exceptionType)
{
case 403:
routeData.Values.Add("action", "HttpError403");
break;
case 404:
routeData.Values.Add("action", "NotFound");
break;
case 500:
routeData.Values.Add("action", "HttpError500");
break;
default:
routeData.Values.Add("action", "GeneralError");
routeData.Values.Add("httpStatusCode", httpException.GetHttpCode());
break;
}
IController controller = new Login.Controllers.ErrorController();
controller.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
1 ответ
В логике выше httpException
может быть null
- попробуйте изменить свой код на что-то вроде этого:
HttpException httpException = exception as HttpException
?? new HttpException(500, "Internal Server Error", exception);
Response.Clear();
Server.ClearError();
var routeData = new RouteData();
routeData.Values.Add("Controller", "Error");
routeData.Values.Add("fromAppErrorEvent", true);
int exceptionType = httpException.GetHttpCode();