我正在尝试使用ASP.net运行状况监控来记录来自asmx web服务的未处理的异常。我已经在web.config中启用了健康监控,但它没有记录任何内容。运行状况监控与asmx web服务一起工作吗?我用谷歌搜索了一下,似乎其他人也问过同样的问题,但从来没有得到过明确的答案。
发布于 2009-04-02 08:44:49
请不要张贴回复,除非它回答了所提出的问题。除了问题之外,其他问题的一半答案会让读者感到困惑。运行状况监视与“真正未处理”的ASP.NET异常或Application_Error事件无关。
答案是否定的。我对此进行了一些挖掘,由于某些原因,web方法中引发的异常永远不会到达健康监控提供者。看起来你必须抓住他们并控制好自己。
发布于 2008-10-09 20:24:14
未处理异常的正常解释与Tom所指的异常之间存在差异。Tom所指的是真正未处理的异常,这将杀死您的w3wp.exe进程(在它有机会记录它之前),正如我在这里所写的:http://www.improve.dk/blog/2008/04/07/spawning-threads-in-aspnet-can-be-dangerous
正常的未处理异常将导致异常发生,并向用户/被调用者显示错误页面。但是,它不会使您的w3wp.exe进程崩溃。这些异常应该由运行状况监视来发现。
发布于 2008-10-23 03:06:10
在Global.asax中,如果使用由Visual Studio自动生成的方法,则可以向Application_Error方法添加代码,以处理异常并以您选择的任何方式记录这些异常。还可以重写Init方法并为类的Error事件添加事件处理程序。
在这两种情况下,您只能得到一个没有任何帮助的普通EventArgs对象,但是您可以使用HttpContext.Current.Server.GetLastError()来获取发生的异常。
正如另一个发帖者提到的,这可能不会捕获由异步运行的委托、您自己启动的线程或使用Page.RegisterAsyncTask()创建的异步页面任务抛出的异常。在这些情况下,您始终需要确保实现具有异常后盾,以便可以捕获异常,并且IIS工作进程不会中止。
https://stackoverflow.com/questions/187551
复制相似问题