4

我们在 IIS 6 中托管了一个 ASMX Web 服务,并且看到我们的一个WebMethods 出现了一些奇怪的行为。在 之后iisreset,对特定方法的第一次调用无法返回到客户端,在 60 秒后超时。

我已经介绍了登录到Application_BeginRequest文件中Application_EndRequestGlobal.asax.cs日志记录显示,对于那一次调用,未调用 EndRequest。方法本身中的 try-finally 块表明它正在运行完成。

在此之前,期间和之后还有其他对不同方法的请求,这些请求没有问题。TcpTrace 显示,对于该方法的第一个请求,从未返回任何回复。

日志还显示,为请求提供服务的线程在 finally 块完成后开始为其他请求提供服务。

我想知道是什么导致了这种行为,以及如何进一步调试。

4

2 回答 2

1

假设这是完全可重复的,我将从更改方法开始。也就是说,我会删除一些东西,直到它按预期工作。

听起来 Web 方法本身会引起一些奇怪的次要行为。我猜这比将两个数字相加并返回结果要复杂一些。

另外我会密切关注该方法的作用。例如,它是否在实例化非托管资源?您是否有任何涉及的 http 处理程序或模块可能会在此方法的第一次执行时崩溃?

通过消除代码直到它起作用,您将确切地找出导致这种情况的原因。

于 2011-01-18T16:39:47.723 回答
0

一些建议:将您的日志记录放在:Application_AuthenticateRequest Application_Error 下,看看您是否收到任何错误。

如果这无济于事,请检查您的应用程序域和 IIS 的事件日志

于 2011-01-18T16:33:27.007 回答