Я пытаюсь использовать мониторинг работоспособности ASP.net для регистрации необработанных исключений из веб-службы asmx. Я включил мониторинг работоспособности в web.config, но он ничего не записывает. Наблюдается ли мониторинг работоспособности с помощью веб-служб asmx? Я искал googled вокруг и кажется, что другие люди задали один и тот же вопрос, но так и не получили определенного ответа.Мониторинг работоспособности ASP.net работает с веб-службами asmx
ответ
Пожалуйста, не публикуйте ответ, если он не отвечает на заданный вопрос. Половина ответов на что-то другое, кроме вопроса, смущает читателя. Мониторинг работоспособности не имеет ничего общего с «действительно необработанными» исключениями ASP.NET или событием Application_Error.
Ответ отрицательный. Я немного вычислил это, и почему-то исключения, возникающие в рамках веб-методов, никогда не попадают в список поставщиков медицинских услуг. Похоже, вы должны поймать их и справиться с собой.
Это не сработает, потому что необработанные исключения не выполняются внутри try/catch любого типа. Из-за этого он не сможет зарегистрировать его. Взгляните на это сообщение в блоге: http://blogs.msdn.com/tom/archive/2007/12/04/unhandled-exceptions-causing-asp-net-to-crash-in-net-2-0.aspx
Существует разница между обычной интерпретацией необработанных исключений и теми, на которые ссылаются Том. Что Том имеет в виду действительно необработанное исключение, что будет убить ваш процесс w3wp.exe (прежде чем он имеет шанс войти его), как я уже писал о здесь: http://www.improve.dk/blog/2008/04/07/spawning-threads-in-aspnet-can-be-dangerous
Нормальные необработанное исключение приведет к исключение ocurring и показ страницы ошибки пользователю/вызываемому. Однако это не приведет к сбою вашего процесса w3wp.exe. Эти исключения следует подбирать путем мониторинга состояния здоровья.
CALM продукт должен работать в этом случае; дайте мне знать, если это не так - я написал это ;-)
В Global.asax, если вы используете один, созданный с помощью Visual Studio Visual Studio, вы можете добавить код в метод Application_Error для обработки исключений и журнала их в любом случае вы выбираете. Вы также можете переопределить метод Init и добавить обработчик события для события ошибки класса.
В любом случае вы получаете бесполезный объект EventAgs vanilla, но вы можете использовать HttpContext.Current.Server.GetLastError(), чтобы получить исключение.
В качестве другого упоминаемого плаката это может не перехватить исключения, которые вызывают асинхронно запущенные делегаты, потоки, которые вы запускаете сами, или асинхронные задачи страницы, созданные с помощью Page.RegisterAsyncTask(). При этом вам всегда нужно убедиться, что в реализациях есть исключения-обратные остановки, чтобы исключения можно было поймать, а рабочий процесс IIS не прервался.
Ваш продукт может работать, но ваша ссылка не работает: – frankadelic 2010-04-30 16:24:18
@frankadelic: извините, что мы в процессе переустановки веб-сайта и смены хостинг-провайдеров, и все еще не работает; напишите мне по электронной почте (steven dot lowe at nov8r.com), и я пришлю вам установщика, если вы хотите попробовать. – 2010-05-03 11:28:28