ASP.NET Development Server并发处理不起作用

时间:2012-01-27 15:55:16

标签: asp.net .net concurrency asp.net-development-serv

我试图找出为什么ASP.NET Development Server不会同时处理请求。

所以我用以下代码创建了一个简单的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",但这似乎没有帮助。

如何同时处理请求的任何想法?

3 个答案:

答案 0 :(得分:7)

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

这真的只适用于有限的单用户测试网络应用程序。

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

一点阅读:ASP.NET Dev Server (Cassini), IIS Express and multiple threads

答案 1 :(得分:0)

XP上的IIS不允许那么多并发连接(我认为它是10)。如果您正在该环境中进行开发,那么这可能就是您遇到这种情况的原因(除了这2个请求之外,您还有对引用文件的请求,而且您可能发出的请求比您认为的特定页面要多)

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

答案 2 :(得分:0)

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

ASP.NET MVC and Ajax, concurrent requests?