Работает ли мониторинг работоспособности ASP.net с веб-службами asmx? - PullRequest
4 голосов
/ 09 октября 2008

Я пытаюсь использовать мониторинг работоспособности ASP.net для регистрации необработанных исключений из веб-службы asmx. Я включил мониторинг работоспособности в web.config, но он ничего не регистрирует. Работает ли мониторинг работоспособности с веб-сервисами asmx? Я погуглил и, похоже, другие люди задавали тот же вопрос, но так и не получили однозначного ответа.

Ответы [ 5 ]

9 голосов
/ 02 апреля 2009

Пожалуйста, не публикуйте ответ, если он не отвечает на заданный вопрос. Половина ответов на что-то, кроме вопроса, сбивает с толку читателя. Мониторинг работоспособности не имеет ничего общего ни с «действительно необработанными» исключениями ASP.NET, ни с событием Application_Error.

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

1 голос
/ 23 октября 2008

В Global.asax, если вы используете один, автоматически сгенерированный Visual Studio, вы можете добавить код в метод Application_Error для обработки исключений и регистрировать их любым способом, который вы выберете. Вы также можете переопределить метод Init и добавить обработчик события для события Error класса.

В любом случае вы получаете только бесполезный ванильный объект EventArgs, но вы можете использовать HttpContext.Current.Server.GetLastError (), чтобы получить возникшую исключительную ситуацию.

Как упоминалось в другом постере, это может не отражать исключения, которые вызываются асинхронно выполняющимися делегатами, потоками, которые вы запускаете сами, или асинхронными задачами страницы, созданными с помощью Page.RegisterAsyncTask (). В этих случаях вам всегда нужно убедиться, что в реализациях есть точки останова исключений, чтобы исключения могли быть перехвачены, а рабочий процесс IIS не был прерван.

1 голос
/ 10 октября 2008

Существует разница между обычной интерпретацией необработанных исключений и теми, на которые ссылается Том. Том имеет в виду действительно необработанные исключения, которые убьют ваш процесс w3wp.exe (прежде чем он сможет его зарегистрировать), о чем я писал здесь: http://www.improve.dk/blog/2008/04/07/spawning-threads-in-aspnet-can-be-dangerous

Нормальные необработанные исключения приводят к возникновению исключения и отображению страницы ошибки пользователю / вызываемому лицу. Однако это не приведет к сбою вашего процесса w3wp.exe. Эти исключения должны быть обнаружены в ходе мониторинга здоровья.

0 голосов
/ 13 октября 2008

продукт CALM должен работать в этом случае; дайте мне знать, если это не так - я написал это; -)

0 голосов
/ 09 октября 2008

Это не сработает, потому что необработанные исключения не выполняются внутри try / catch любого вида. Из-за этого он не сможет войти. Посмотрите на это сообщение в блоге: http://blogs.msdn.com/tom/archive/2007/12/04/unhandled-exceptions-causing-asp-net-to-crash-in-net-2-0.aspx

...