Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于IIS/ASP.Net中请求队列的基本问题_Asp.net_Iis_Httpwebrequest_Queue - Fatal编程技术网

关于IIS/ASP.Net中请求队列的基本问题

关于IIS/ASP.Net中请求队列的基本问题,asp.net,iis,httpwebrequest,queue,Asp.net,Iis,Httpwebrequest,Queue,我有一个ASP.Net应用程序在IIS 6下运行。一个简单的页面有两个单选按钮和一个提交按钮。如果我选择单选按钮“A”并提交页面,将生成一个冗长的PDF文件,这大约需要一分钟的时间来构建。如果我选择单选按钮“B”,将生成一个小PDF。(在这两种情况下,PDF都会写入响应对象,并在我的浏览器中打开。) 如果我选择单选按钮“A”并提交,然后点击浏览器中的红色X停止当前请求,然后选择单选按钮“B”并重新提交,页面仍需要很长时间来处理我的请求 毫无疑问,我的第一个请求仍在服务器上处理,但我想知道IIS和

我有一个ASP.Net应用程序在IIS 6下运行。一个简单的页面有两个单选按钮和一个提交按钮。如果我选择单选按钮“A”并提交页面,将生成一个冗长的PDF文件,这大约需要一分钟的时间来构建。如果我选择单选按钮“B”,将生成一个小PDF。(在这两种情况下,PDF都会写入响应对象,并在我的浏览器中打开。)

如果我选择单选按钮“A”并提交,然后点击浏览器中的红色X停止当前请求,然后选择单选按钮“B”并重新提交,页面仍需要很长时间来处理我的请求


毫无疑问,我的第一个请求仍在服务器上处理,但我想知道IIS和/或ASP.Net是如何对我的请求进行排队的,以便在所有用户中保证公平使用服务器的。我的假设大致正确吗?如果是这样,是如何实现的?

您可能遇到了会话锁定。尝试在多个浏览器中运行您的实验,即,不要停止浏览器并重新提交,而是在单独的浏览器(如Firefox和Chrome)中启动两个请求,这两个浏览器将使用单独的会话,因此不会阻塞


有关基本原理和解决方法,请参阅。

是否还有其他阻碍因素?像SQL表上的锁?尝试以下操作:不要创建pdf,而是对操作a和b System.Threading.Thread.Sleep(2000)使用以下命令;系统线程线程睡眠(100);第二个请求在到达第一个请求后是否仍然需要更长的时间?谢谢你的文章。现在有道理了。