IIS同步服务请求?

时间:2013-11-26 08:21:58

标签: c# iis asynchronous

我有一个使用C#和Visual Studio开发的网站。

我注意到在Visual Studio的调试模式下(但是没有断点)当我在页面上并多次按F5刷新页面时,需要很长时间才能提供所有请求,直到我得到最后一个响应浏览器。同时,当我尝试从不同的浏览器会话访问该站点时,我正在等待来自服务器的响应,该响应正忙,并且没有响应。

在向客户端提供请求时,IIS是否异步工作?

3 个答案:

答案 0 :(得分:4)

是的,IIS可以并行向客户端提供多个请求,但如果您在ASP.NET中使用会话状态,那么默认情况下,来自单个会话的请求将按顺序提供(因此两个线程不可能访问会话状态同时)。

如果“调试模式”意味着“将调试器连接到Web服务器”或“当我使用'debug'选项编译我的应用程序时”,如果它是前者,那么你的问题就不清楚了,那么所有的赌注都是关闭的就并行操作而言 - 附加调试器几乎总是会改变线程行为。

答案 1 :(得分:2)

IIS和ASP.NET严重并发。它是否同时运行来自单个客户端的请求取决于IIS等。但是,并不总是能够检测到断开连接 - 因此,如果每个请求都会破坏服务器,则可能需要一段时间才能完成。提示是:不要写慢页。设置要在其中响应的目标时间,并使用迷你探查器等工具检查您的工作方式,以及花费时间的工作。我们内部的目标是大约30ms,但是大多数人可能想要最初的目标是1s,然后是0.5s等等。

答案 2 :(得分:1)

当您在断点处调试时,所有线程都被冻结。因此,其他请求排队等待处理。