繁体   English   中英

ASP.net运行状况监视是否与asmx Web服务一起使用

[英]Does ASP.net health monitoring work with asmx web services

我正在尝试使用ASP.net运行状况监视来记录来自asmx Web服务的未处理异常。 我在web.config中启用了运行状况监视,但它没有记录任何内容。 健康监测是否适用于asmx Web服务? 我已经google了一下,似乎其他人也问了同样的问题,但从来没有得到明确的答案。

请不要发布回复,除非它回答了被问到的问题。 除问题之外的其他问题的一半答案会使读者感到困惑。 运行状况监视与“真正未处理的”ASP.NET异常或Application_Error事件无关。

答案是不。 我已经深入研究了这一点,由于某些原因,Web方法中引发的异常从未进入健康监控提供商。 看起来你必须抓住它们并处理好自己。

对未处理的异常的正常解释与Tom所指的异常之间存在差异。 Tom所指的是真正未处理的异常,它会杀死你的w3wp.exe进程(在它有机会记录之前),正如我在这里发表的博客: http//www.improve.dk/blog/2008 / 04/07 /产卵线程合ASPNET可任意是危险

正常的未处理异常将导致异常发生并向用户/被调用者显示错误页面。 但它不会崩溃您的w3wp.exe进程。 健康监测应该采用这些例外情况。

在Global.asax中,如果使用Visual Studio自动生成的那个,则可以向Application_Error方法添加代码以处理异常并以您选择的任何方式记录它们。 您还可以覆盖Init方法并为类的Error事件添加事件处理程序。

在任何一种情况下,您只能获得一个无用的vanilla EventArgs对象,但您可以使用HttpContext.Current.Server.GetLastError()来获取发生的异常。

正如另一张海报所提到的,这可能无法捕获异步运行委托,您自己启动的线程或使用Page.RegisterAsyncTask()创建的异步页面任务引发的异常。 在这些方面,您始终需要确保实现具有异常后退,以便可以捕获异常并且不会中止IIS工作进程。

它不起作用,因为未处理的异常不在任何类型的try / catch中运行。 因此,它将无法记录它。 看一下这篇博客文章: http//blogs.msdn.com/tom/archive/2007/12/04/unhandled-exceptions-causing-asp-net-to-crash-in-net-2-0。 ASPX

CALM产品应该适用于这种情况; 让我知道如果没有 - 我写了它;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM