我有一个在IIS 6下运行的ASP.Net应用程序。一个简单的页面有两个单选按钮和一个提交按钮。如果我选择单选按钮“A”并提交页面,则会生成一个冗长的PDF文件,这需要大约一分钟的时间来构建。如果我选择单选按钮“B”,则会生成一个小PDF。 (在这两种情况下,PDF都会写入Response对象,并在浏览器中打开。)
如果我选择单选按钮“A”并提交,然后点击我浏览器中的红色X以停止当前请求,然后选择单选按钮“B”并重新提交,页面仍然需要很长时间来处理我的请求。
毫无疑问,我的第一个请求仍然在服务器上处理,但我想知道IIS和/或ASP.Net如何排队我的请求,以确保所有用户都能公平地使用服务器。在假设这样的事情发生时我是否大致正确,如果是这样,它是如何完成的?
答案 0 :(得分:1)
您可能正在遇到会话锁定。尝试在多个浏览器中运行您的实验,即不是停止浏览器并重新提交,而是在单独的浏览器(例如Firefox和Chrome)中触发两个请求,这些浏览器将使用单独的会话,因此不会阻止。
请参阅 Concurrent Requests and Session State 了解原理和解决方法。