Как правильно регистрировать каждое исключение, используя OWIN
мой вопрос должен быть довольно простым, но, к сожалению, мне не повезло в его решении.
По сути, у меня есть несколько контроллеров Web API, размещенных в OWIN и развернутых в Azure.
Мне действительно нужно отслеживать исключения, которые происходят в каждом промежуточном программном обеспечении (например,OAuthAuthorizationServerProvider или жеSignalR Постоянные соединения), но я точно не знаю, как этого добиться.
Я пробовал Elmah, но он не работает должным образом с OWIN из-за отсутствияHttpContext.Я пытался использовать log4net, но я могу регистрировать только исключения, генерируемые контроллерами Web API, используя пользовательский ExceptionFilterAttribute. Другие игнорируются.Я попытался определить пользовательский LoggerFactory и назначить его в автозагрузке, используяapp.SetLoggerFactory(new MyLoggerFactory())
, но исключение, выброшенное другими промежуточными программами, не регистрируется.Я пытался получить хотя бы значимое сообщение об ошибке, отправленное клиенту, но, несмотря на<customErrors mode="Off"/>
а также<deployment retail="false"/>
Azure отказывается возвращать что-либо, кроме{"message":"an error has occurred"}
.. Я пробовал веб-сайты Azure и облачные службы Azure.Я видел несколько облачных альтернатив, которыедолжен работать с OWIN, например, Elmah.io или Raygun.io, но мне не нужны их облачные функции, и определенно не стоит платить сотни долларов в год только за регистрацию некоторых исключений.Какой должен быть лучший способрегистрировать любые возможные исключения брошенный моим заявлением?
Спасибо за вашу помощь