检测未处理的Web服务调用(ASP.NET)

时间:2009-12-09 20:27:38

标签: asp.net web-services dispose

我正在继承遗留项目,并且有一个页面调用一个进行Web服务调用的方法。负载和性能测试检测到此页面有时需要很长时间才能关闭,但通常情况下很好,如果有一个挂起,则对该页面的所有其他请求都会挂起,直到第一个请求解析,然后它们全部解析。 / p>

我认为这可能与实例化而未处理的Web服务有关,但我不知道如何更加确定。我试图将一个委托添加到Dispose方法,但似乎没有激发。 (我不确定如果没有明确调用Dispose,但这并不重要。)

那么我可以在生产服务器或任何已部署的环境中查看这些请求是否堆积起来(或者如果它们不是问题则以有序的方式处理)?

2 个答案:

答案 0 :(得分:1)

您可以考虑使用.NET Memory Profiler之类的工具。您可以使用它来附加到正在运行的应用程序,它可以查找和报告所有未处理的对象。

我认为他们可以免费试用两周。

答案 1 :(得分:-1)

在您的网络应用程序代码中,您可以在发送请求之前写入日志(事件日志,文本文件),并在收到响应后立即写入。包括有关请求的一些标识信息。添加时间戳。

如果您只想在调试时使用它,请将其包装在#debug中。

或者,如果您想在发布模式下进行测试,可以在web.config中的appSettings中放置一个布尔值,这样您就可以关闭和打开日志。