gpt4 book ai didi

asp.net - 在 IIS7 中,Application_BeginRequest 和 Application_PreRequestHandlerExecute 之间会发生什么?

转载 作者:行者123 更新时间:2023-12-02 11:05:15 26 4
gpt4 key购买 nike

我在获得大量流量的 ASP.Net IIS 应用程序上有一些带有时间戳的跟踪语句。我在 Global.asax 中的 Application_BeginRequest 末尾和 Application_PreRequestHandlerExecute 开头有跟踪语句。有时,BeginRequest 结束和 PreRequestHandlerExecute 开始之间会有很大的延迟,即超过 5 秒。

这两个方法调用之间的 HttpRequest 生命周期中发生了什么,可能需要这么长时间?这是 Windows Server 2008 上的 IIS7。

谢谢。

最佳答案

如果 BeginRequest 已经发生并且延迟发生在 PreRequestHandlerExecute 之前,您可能需要记录线程 ID。如果不同,您就会受到 ASP.NET 线程敏捷性的影响。

发生这种情况的一个原因可能是 session 的使用。 ASP.NET 在 HttpContext.Current.Session 上使用读写锁。如果写入此变量,同一 session 的所有其他请求将无法同时运行并被停放在队列中。 .NET使用轮询机制来检查 session 锁是否被释放。

我还建议检查您是否已在 Release 上进行构建以及 system.web/compilation/@debug = 'false'

关于asp.net - 在 IIS7 中,Application_BeginRequest 和 Application_PreRequestHandlerExecute 之间会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5034376/

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