2012-01-27 52 views
6

我想知道为什么ASP.NET开发服务器不处理请求并发。ASP.NET开发服务器并发处理不起作用

所以我创建了一个简单的ASPX页面下面的代码:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

System.Threading.Thread.Sleep(10000) 

End Sub 

如果我打开网页的两倍,反应需要20秒。这意味着,服务器逐个执行请求(不同时)。

this topic中提供了以下建议,我在页面中添加了EnableSessionState="false",但这似乎没有帮助。

任何想法如何使请求过程并发?

回答

7

asp.net dev服务器(cassini)无法处理多个线程。所以它一次有效地处理请求。关闭会议确实不会影响这一点。

这实际上只是针对一个Web应用程序的有限单用户测试。

我建议你转储cassini并安装IIS Express或只是去完整的IIS实现。

小阅读:在XP ASP.NET Dev Server (Cassini), IIS Express and multiple threads

0

IIS不允许的并发连接(我认为这是10)。如果你在这样的环境下开发,那可能就是你遇到这种情况的原因(除了这两个请求之外,你有请求引用文件,另外你可能发出的请求比你想象的要多) 。

我不确定VS内置服务器是否有类似的限制。

+0

我不明白为什么这个答案被视为脱离主题,让别人冷落它。我认为这是相关的,即使它没有真正回答这个问题(模糊不清),它不应该受到惩罚。如果有的话,我应该得到“谢谢,无论如何”。好吧,无论如何,感谢谁做到了。 – 2012-01-27 20:19:51

+0

我同意...反击;) – NotMe 2012-01-27 21:06:58

+0

是的,你提供了一个不错的视角,不应该受到惩罚,但会得到回报... – 2012-09-09 01:29:04

0

如果您在不禁用SessionState的情况下使用ASP.NET MVC(默认情况下您会这样做),您的请求将自动序列化 - 因此,如果您使用随机Thread.Sleep()值检查竞态条件,则请求B将永远不会即使睡眠时间较少,也要在请求A之前完成。

ASP.NET MVC and Ajax, concurrent requests?