Приложение MVC FaultException Thrown Как добраться, чтобы отобразить страницу ошибки - PullRequest
0 голосов
/ 30 марта 2012

У меня есть приложение mvc 3, которое, когда в код генерируется стандартное генерируемое исключение new Exception, отображается страница ошибки из Views \ Shared \ error.cshtml. Это можно сделать, просто установив <customErrors mode="On"/>. (это как ожидалось и как нужно)

Приложение использует сервисы WCF на среднем уровне, который, когда эти сервисы генерируют FaultException, MVC не показывает страницу ошибки, а показывает подробности вызова веб-сервиса пользователю на экране. Все, что я хочу сделать, это обработать ошибку в моем коде и показать пользователю Error.cshtml. Я пытался изменить глобальный asax, но это не работает.

   protected void Application_Error(object sender, EventArgs e)
    {
      Exception exception = Server.GetLastError();
      if (exception.GetType() == typeof(FaultException))
      {
        throw new Exception("There was a fault exception that i do not want to show details of to user.");

      }
    }

Ответы [ 2 ]

0 голосов
/ 30 марта 2012

Вы также можете создать контроллер ошибок / представление и в своем блоке переадресации перенаправить на пользовательскую страницу ошибок по вашему выбору

    try
    {
        foo.bar()      
    }
    catch(SpecificException)
    {
       RedirectToAction("500", "Error");
    }
0 голосов
/ 30 марта 2012

Попробуйте создать ErrorController, так как asp.net MVC попытается разрешить ссылку, указанную вами в web.config как {Controller} / {View}, если вы не укажете ее, чтобы игнорировать эту страницу.Кроме того, вместо этого вы можете применить атрибут для обработки исключений.

...