ASP.NET应用程序,用于处理来自单个进程的多个请求

时间:2012-06-06 11:08:38

标签: asp.net iis cassini

我目前正在调试此问题。

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

在多标签IE的情况下,我试图在不同的标签中将请求几乎同时发送到同一台服务器,但只有在发出响应之后才会处理响应。

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

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

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

任何需要任何形式的会话访问权限的其他请求(由于读/写是默认设置)将被阻止,直到上一个请求完成为止。

基于以下链接:

答案 1 :(得分:0)

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

了解以及为什么: Replacing ASP.Net's session entirely

另外:Web app blocked while processing another web app on sharing same session

答案 2 :(得分:0)

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

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