我们在IIS6中托管了一个ASMX web服务,并且发现其中一个WebMethod出现了一些奇怪的行为。在iisreset之后,对特定方法的第一次调用无法返回给客户端,这会在60秒后超时。
我在Global.asax.cs文件中介绍了登录Application_BeginRequest和Application_EndRequest。日志记录显示,对于该调用,未调用EndRequest。方法本身中的try-finally块表明它正在运行到完成。
在此之前、期间和之后,对不同方法的其他请求都没有显示出问题。TcpTrace显示,对于该方法的第一个请求,不会返回任何响应。
日志还显示,为请求提供服务的线程在finally块完成后开始为其他请求提供服务。
我想知道是什么导致了这种行为,以及我如何进一步调试它。
发布于 2011-01-19 00:39:48
假设这是完全可重复的,我将从更改方法开始。也就是说,我会删除一些东西,直到它按预期工作。
听起来似乎有一些奇怪的次要行为是由web方法本身引起的。我猜这比简单地将两个数字相加并返回结果要复杂得多。
此外,我还会密切关注该方法正在做什么。例如,它是否在实例化非托管资源?您是否有任何http处理程序或模块可能会在第一次执行此方法时崩溃?
通过消除代码,直到它正常工作,您将确切地找出是什么导致了这一问题。
发布于 2011-01-19 00:33:27
一些建议:把你的日志放在: Application_AuthenticateRequest Application_Error下,看看你是否收到任何错误。
如果这不能解决问题,请检查应用程序域和IIS的事件日志
https://stackoverflow.com/questions/3617082
复制相似问题