C# IIS同步服务请求?

C# IIS同步服务请求?,c#,iis,asynchronous,C#,Iis,Asynchronous,我有一个使用C和Visual Studio开发的网站 我注意到,在visual Studio的调试模式下,当我在一个页面上并多次按F5刷新页面时,没有断点,需要很长时间来处理所有请求,直到我得到浏览器的最后一个响应。同时,当尝试从其他浏览器会话访问站点时,我正在等待服务器的响应,该服务器正忙且没有响应 当向客户端提供请求时,IIS不是异步工作吗?当您调试并在断点处停止时,所有线程都会冻结。因此,其他请求排队等待处理。IIS和ASP.NET严重并发。它是否同时运行来自单个客户端的请求取决于IIS等

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

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


当向客户端提供请求时,IIS不是异步工作吗?

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

IIS和ASP.NET严重并发。它是否同时运行来自单个客户端的请求取决于IIS等。但是,并不总是能够检测到断开连接-因此,如果每个请求都影响服务器,则可能需要一段时间才能完成。提示:不要写慢页。设置一个目标时间,您希望在该时间内做出响应,并使用像mini profiler这样的工具来检查您正在做什么,以及花费了多少时间。我们内部的目标是30毫秒左右,但大多数人可能希望最初的目标是1秒,然后是0.5秒,等等。

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


您的问题不清楚“调试模式”是指将调试器连接到web服务器,还是在我使用“调试”选项编译应用程序时-如果是前者,那么,就并行操作而言,所有的赌注都是无效的-附加一个调试器几乎总是会改变线程行为。

也许应该注意,这主要适用于断点/暂停时-而不仅仅是在调试器内部运行。@MarcGravel我的意思是在visual studio的调试模式下运行,但没有中断要点您可能会在@EdChapel中找到一个解决方法-它似乎与调试器无关。噢,好的地方;我通常禁用会话状态,因此我忘记了它创建的一些细微差别。实际上,我通常观察到大量并行负载,即使在debugger@WillDean我的意思是在VisualStudio中以调试模式运行,但没有中断points@Gidi如果不连接调试器,问题是否会消失?@Gidi澄清:否,ASP.NET MVC在这里没有根本问题;不要随意开始雕刻,我不知道你会从哪里开始;ASP.NETMVC在并发性方面工作得非常好;无论您遇到什么问题,都与设置中的某些内容有关