Стратегии обработки ошибок в .NET Web Services - PullRequest
0 голосов
/ 07 июня 2010

У меня есть довольно обширная библиотека веб-сервисов, встроенная в .NET, которую я использую как модель данных для веб-сайтов нашей компании. В большинстве приложений .NET я использую файл Global ASAX для профилирования, регистрации и создания отчетов об ошибках для всех исключений, создаваемых приложением.

Глобальный ASAX недоступен для веб-служб, поэтому мне любопытно, какие другие стратегии люди придумали, чтобы обойти это ограничение. В настоящее время я просто делаю что-то вроде этого:

<WebMethod()> _
Public Function MyServiceMethod(ByVal code As Integer) As String
    Try
        Return processCode(code)
    Catch ex As Exception
        CustomExHandler(ex) 'call a custom function every time to log exceptions
        Return errorObject
    End Try
End Function

У кого-нибудь есть лучший способ сделать что-то кроме вызова функции внутри Catch?

1 Ответ

1 голос
/ 08 июня 2010

Предполагая, что вы не можете воспользоваться советом ladenedge , http://msdn.microsoft.com/en-us/library/ds492xtk(VS.71).aspx, предполагается, что нет способа использовать глобальную обработку ошибок, из-за которой вы застряли в своем текущем методе:

"Веб-приложение может состоять из нескольких веб-служб XML, однако событие Application_Error в файле Global.asax не может использоваться для глобальной обработки исключений. HttpHandler для веб-служб XML использует любое исключение, которое возникает, когда веб-служба XML выполняется и превращает его в ошибку SOAP до вызова события Application_Error. "

Даже если у вас есть тонна функций, вы, по крайней мере, отправляете исключения в обычное место вместо того, чтобы использовать программирование «вырезать и вставить». Похоже, ваш метод может соответствовать принципу СУХОЙ. Другими словами, «ты в порядке!»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...