2012-03-12 108 views
15

刚刚安装IIS Express 7.5,并试图调试ASP.NET MVC 3应用程序中的并发问题。然而,我似乎无法让Web服务器同时处理请求,它们只是一个接一个地执行。IIS Express 7.5不同时处理请求

我正在运行Apache Bench来模拟并发负载,但它只是排队等候。

有人有什么想法吗?

谢谢。

+0

如果您在Firefox中使用$ .getJSON,请求将会排队 - 这是一个Firefox的事情...尝试查看其他浏览器是否出现此问题。 – 2013-12-20 23:50:19

+0

@EranBetzalel OP陈述他正在使用Apache Bench – 2014-01-10 14:58:42

+0

@JamesHolwell对不起,不知怎的,我已经错过了,但也许它有与Firefox相同的问题行为 - 我不确定。 – 2014-01-10 16:10:16

回答

21

如果您正在使用的会话和重用你的并发请求的会话ID,ASP.NET将排队的请求,因为它需要为每个请求的会话的排他锁。

http://msdn.microsoft.com/en-us/library/ms178581.aspx

并发请求和会话状态两者

访问ASP.NET会话状态是每个会话,这意味着独家 ,如果两个不同的用户进行的并发请求,访问每个 单独的会话同时授予。但是,如果两个并发的 请求是针对同一会话(通过使用相同的SessionID 值),第一个请求获得对会话 信息的独占访问。第二个请求仅在第一个请求 完成后才执行。(如果由于第一个请求超出 锁定超时而释放信息上的独占锁定 ,则第二个会话也可以访问。)如果指令中的EnableSessionState值设置为ReadOnly,则只读会话 信息不会导致会话数据的独占锁定。 但是,会话数据的只读请求可能仍然需要等待 才能清除会话数据的读写请求所设置的锁定。