2008-10-09 2 views
4

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

ответ

9

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

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

1

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

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

0

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

+0

Ваш продукт может работать, но ваша ссылка не работает: – frankadelic 2010-04-30 16:24:18

+0

@frankadelic: извините, что мы в процессе переустановки веб-сайта и смены хостинг-провайдеров, и все еще не работает; напишите мне по электронной почте (steven dot lowe at nov8r.com), и я пришлю вам установщика, если вы хотите попробовать. – 2010-05-03 11:28:28

1

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

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

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