Попытайтесь считать это: Skype FAQ - изменение аудиосистемы
Поскольку MVC построен на основе asp.net, вы должны иметь возможность определить страницу глобальной ошибки в web.config , как и в веб-формах, например.
<customErrors mode="On" defaultRedirect="~/ErrorHandler" />
Вы можете создать фильтр, который ищет исключение в методе OnActionExecuted
:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class WatchExceptionAttribute : ActionFilterAttribute {
public override void OnActionExecuted(ActionExecutedContext filterContext) {
if (filterContext.Exception != null) {
// do your thing here.
}
}
}
Затем вы можете поместить [WatchException]
в контроллер или Action Method, и это позволит регистрировать исключения. Если у вас много контроллеров, это может быть утомительно, поэтому, если у вас общий базовый контроллер, вы можете переопределить там OnActionExecuted
и сделать то же самое. Я предпочитаю метод фильтрации.
Что касается отображаемой страницы, вам нужно создать раздел customErrors в вашем web.config и настроить его для любых кодов состояния, которые вы хотите обрабатывать. .
Пример:
<customErrors defaultRedirect="GenericError.htm" mode="RemoteOnly">
<error statusCode="500" redirect="InternalError.htm"/>
</customErrors>
Что касается регистрации исключений, я бы рекомендовал использовать ELMAH . Он прекрасно интегрируется с сайтами ASP.NET MVC.