2015-04-30 4 views
2

Я работаю над проектом WEB API. Я хочу реализовать глобальную обработку ошибок, и для этого я выбрал ELMAH.способ использования Elmah.Contrib.WebApi 1.0.9?

Об обнаружении googling я нашел, что могу реализовать ELMAH в WEB API с пакетом Elmah.Contrib.WebApi.

Итак, я установил пакет Elmah.Contrib.WebApi и написал в author's github site и зарегистрировал его.

поэтому мой global.asax выглядит следующим образом.

protected void Application_Start() 
    { 
     GlobalConfiguration.Configure(WebApiConfig.Register); 
     GlobalConfiguration.Configuration.Filters.Add(new ElmahHandleErrorApiAttribute()); 
     GlobalConfiguration.Configuration.MessageHandlers.Add(new MessageLoggingHandler()); 

    } 

но он не работает. Я также пытался найти документацию о том, как реализовать этот пакет в проекте, но не смог его найти.

может кто-нибудь помочь мне, чтобы я мог получить работу, которая pacakge?

ответ

4

Если вы используете Web API 2, вы должны использовать новый регистратор исключение:

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     ... 
     config.Services.Add(typeof(IExceptionLogger), new ElmahExceptionLogger()); 
     ... 
    } 
} 

Также на этом посту:

http://blog.elmah.io/logging-to-elmah-io-from-web-api/

(без elmah.io если вы используете другой магазин журналов)

+0

Я установил пакет elmah.io, но все тот же эффект, но все тот же эффект d ошибка была выбрана после реализации elmah, она должна была быть зарегистрирована не выбрасывается – Dhaval

+0

Вам не нужно устанавливать пакет elmah.io. Это только если вы хотите использовать elmah.io в качестве хранилища журналов. Вы добавили строку: config.Services.Add (typeof (IExceptionLogger), новый ElmahExceptionLogger()); – ThomasArdal

+1

BTW ELMAH не поймает ошибку, чтобы она не показывалась пользователю. Он только слушает ошибки и журналы, если они есть. – ThomasArdal