0

Я вижу странные проблемы после развертывания сайта. Я уточнял пользовательские ошибки контроллера & представление в Global.asax.cs, используя следующие:Проблемы с представлением ошибок MVC при развертывании сайта

protected void Application_Error(object sender, EventArgs e) 
    { 
     var httpContext = ((MvcApplication)sender).Context; 
     var currentController = " "; 
     var currentAction = " "; 
     var currentRouteData = RouteTable.Routes.GetRouteData(
      new HttpContextWrapper(httpContext)); 

     if (currentRouteData != null) 
     { 
      if (currentRouteData.Values["controller"] != null 
       && !String.IsNullOrEmpty(currentRouteData.Values["controller"].ToString())) 
      { 
       currentController = currentRouteData.Values["controller"].ToString(); 
      } 

      if (currentRouteData.Values["action"] != null 
       && !String.IsNullOrEmpty(currentRouteData.Values["action"].ToString())) 
      { 
       currentAction = currentRouteData.Values["action"].ToString(); 
      } 
     } 

     var ex = Server.GetLastError(); 
     var controller = new ErrorController(); 
     var routeData = new RouteData(); 
     var action = "Index"; 

     if (ex is HttpException) 
     { 
      var httpEx = ex as HttpException; 

      switch (httpEx.GetHttpCode()) 
      { 
       case 404: 
        action = "NotFound"; 
        break; 

       // others if any 
      } 
     } 

     if (ex is NisSessionExpiredException) 
     { 
      action = "SessionExpired"; 
     } 

     httpContext.ClearError(); 
     httpContext.Response.Clear(); 
     httpContext.Response.StatusCode = ex is HttpException 
      ? ((HttpException)ex).GetHttpCode() 
      : 500; 
     httpContext.Response.TrySkipIisCustomErrors = true; 

     routeData.Values["controller"] = "Error"; 
     routeData.Values["action"] = action; 

     controller.ViewData.Model = new HandleErrorInfo(ex, currentController, currentAction); 
     ((IController)controller).Execute(
      new RequestContext(new HttpContextWrapper(httpContext), routeData)); 
    } 

Это отлично работает локально, но после развертывания на сервере, при возникновении ошибки снова использует указанный контроллер & действие, но он всегда возвращается:

System.InvalidOperationException: вид «Error» или его хозяин не найден или нет вида двигателя не поддерживает искомых местоположение. Были найдены: : ~/Views/Draft/Error.aspx ~/Views/Draft/Error.ascx ~/Views/Shared/Error.aspx ~/Views/Shared/Error.ascx ~/Просмотры/Проект /Error.cshtml ~/Views/Проекты/Error.vbhtml ~/Просмотров/Shared/Error.cshtml ~/Просмотров/Shared/Error.vbhtml в System.Web.Mvc.ViewResult.FindView (ControllerContext контекст) в System.Web.Mvc.ViewResultBase.ExecuteResult (Контекст ControllerContext) по адресу System.Web.Mvc.Async.AsyncControllerActionInvoker. <> c__DisplayClass25.b__22 (IAsyncResult asyncResult) в System.Web.Mvc.Controller. <> c__DisplayClass1d.b__18 (IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncResultWrapper. <> c__DisplayClass4.b__3 (IAsyncResult ar) в System.Web.Mvc.Controller.EndExecuteCore (IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncResultWrapper. <> c__DisplayClass4.b__3 (IAsyncResult ar) по адресу System.Web.Mvc.MvcHandler. <> c__DisplayClass8.b__3 (IAsyncResult asyncResult) в System.Web.Mvc.Async.AsyncResultWrapper. <> c__DisplayClass4.b__3 (IAsyncResult аг) в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() на System.Web.HttpApplication.ExecuteStep (IExecutionStep шаг, Логическое & completedSynchronously)

вместо ожидаемых ошибок (как вы можете видеть выше, представление об ошибке должно предоставить мне подробную информацию о том, что такое исключение, а также стек вызовов). По моему мнению, это мнение никогда не должно было вызываться (а также оно никогда не вызывается локально).

ответ

0

мне удалось решить эту проблему, это было так же просто, как добавление в web.config следующую строку:

<customErrors mode="Off" /> 

Оказалось, что, возможно, глобальные параметры мандата IIS тем, чтобы быть или что-то рода, как я ранее не указывал.

 Смежные вопросы

  • Нет связанных вопросов^_^