2

我目前正在调试一些关于此的问题。

我们有一个 ASP.NET Web 应用程序,我正在 Cassini 上进行调试。当我尝试使用 IE 并向服务器发送请求时,需要一些时间(例如大约 20 分钟)来处理然后发送响应。

在多选项卡 IE 的情况下,我尝试将不同选项卡中的请求同时发送到同一台服务器,但只有在发送响应之一后才会处理响应。

如果启动一个新的 IE 实例并在这些不同的实例中发出请求,则服务器几乎可以同时处理和发出响应。在做了一些研究后,我发现 IIS express 可以解决我的问题,但我不能。任何人都遇到过类似的问题,或者我错过了一些非常重要的事情要先检查?

谢谢您的帮助。

4

3 回答 3

2

这主要是由于 ASP.net 的会话状态变量以及一次只有一个请求可能对特定会话具有 R/W 访问权限(由 SessionID cookie 确定)的事实。

任何需要任何形式的会话访问的附加请求(因为读/写是默认设置)将被阻止,直到前一个请求完成。

基于以下链接:

于 2016-04-20T19:19:18.677 回答
0

我认为您错过了会话​​锁定所有请求,每次只留下一个运行这一点。

阅读相关内容以及原因: 完全替换 ASP.Net 的会话

另外:在共享同一会话时处理另一个 Web 应用程序时,Web 应用程序被阻止

于 2012-06-06T11:13:36.567 回答
0

原因是 ASP.NET 中的会话不是线程安全的。因此,ASP.NET 序列化对来自同一会话的请求的访问。

如果您有一个多标签 IE,那么您的标签共享一个会话。第一个请求立即执行,其他请求排队。如果您有不同的实例,那么每个实例都会创建一个新会话,因此请求会并行执行。

于 2012-06-06T11:21:26.523 回答