2012-06-06 79 views
2

我目前正在调试有关此问题。ASP.NET应用程序来处理来自单个进程的多个请求

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

在多标签IE的情况下,我试图在发出在不同标签中的请求大约相同的时间到相同的服务器,但是该响应中的所述一个被送出后,才响应进行处理。

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

谢谢你的帮助。

回答

0

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

阅读关于这一点,原因是: Replacing ASP.Net's session entirely

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

+0

OK,让我的链接检查,看看是否我的问题是可以解决的。非常感谢你! – redcomethk

+0

@redcomethk没有问题,会话如何工作,并解决其他同步问题。如果您希望避免这种情况发生,您需要关闭会话,或者至少不要用于完成超过几秒钟的页面。或者做了一个完全自定义的会话(这就是我所做的)并根据需要处理数据。 – Aristos

0

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

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

2

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

需要任何形式的会话访问任何其他要求(因为读/写是默认的)将被阻止,直到先前的请求已经完成。

基于以下链接:

相关问题