首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET中HTTP模块与Handler之间的内部延迟

ASP.NET中HTTP模块与Handler之间的内部延迟
EN

Stack Overflow用户
提问于 2017-02-13 19:01:05
回答 1查看 1.4K关注 0票数 1

我有一个标准的ASP.NET (Web )应用程序运行在IIS8上,并接收投诉,有时它会花费太多的时间来处理请求。

在深入研究和记录之后,我发现在我的上一个HTTP模块中的PreRequestHandlerExecute事件结束之后,以及在我的HTTP处理程序中的ProcessRequest事件之前,无论什么地方都会发生延迟。

据我所知,在中间没有任何代码,管道的这一部分绝对是由IIS和ASP.NET框架管理的。我还看到模块和Handler处理线程ID在发生延迟时会发生变化。

我读了大量的文档,但并没有更接近于决议:

这些延误的原因是什么?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2017-02-20 16:30:09

您的站点并不慢,它正在等待。

ASP.NET只允许每个会话ID执行一个线程。如果用户打开两个选项卡,并尝试提交两个具有相同会话ID的web请求,则第二个线程将阻塞,直到第一个线程完成为止。

有关讨论和几个不同的解决方案,请参见这个问题:我刚发现为什么所有的asp.net网站都很慢

最简单的答案是..。如果处理程序只需要对会话变量的读访问,则实现IReadOnlySessionState而不是IRequireSessionState。这将允许处理程序至少与自身并发执行。

您可以使用最近发布的微软全新的异步会话状态模块。应该管用的。如果是的话,一定要回答这个问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42211547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档