gpt4 book ai didi

c# - 什么时候可以不调用 Application_EndRequest?

转载 作者:行者123 更新时间:2023-11-30 12:52:49 26 4
gpt4 key购买 nike

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

我在 Global.asax.cs 文件中引入了登录到 Application_BeginRequestApplication_EndRequest。日志记录显示,对于该调用,未调用 EndRequest。方法本身中的 try-finally block 表明它正在运行完成。

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

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

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

最佳答案

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

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

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

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

关于c# - 什么时候可以不调用 Application_EndRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3617082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com