IIS7 - 一次只能提供一页.这让我很难受!

Mic*_*yor 15 iis iis-7 asp-classic

情况:经典ASP应用程序,使用自定义应用程序池.默认设置.

某些 IIS7计算机上,IIS决定一次只提供一个页面.因此,如果从站点多次加载任何页面,则每个页面都必须连续加载.

例如,如果我从一个浏览器加载http://foo.com/default.asp,并从另一台机器加载http://foo.com/differenturl.asp,则第一个必须在另一个加载之前完成.这几乎就像w3p进程是单线程的.

请注意,IIS的高级设置中有一个名为MaxProcesses的设置,其中显示"将此设置为大于1以创建Web Garden"(无论是什么).这不能解决问题,因为这会产生具有自己的会话状态等的多个进程,并且当您加载http://foo.com/default.asp时,无法保证您被分配到同一进程.

问题出现了,因为我们有一个用ASP编写的诊断页面,它创建和ActiveX控件,它在网站上加载一个URL并返回结果.

因此,diagnostics.asp加载并在服务器端的代码中创建一个小的Web控件,在同一服务器上加载(想想XMLHTTP控件)default.asp.

此页面永远不会完成加载,因为服务器在服务default.asp页面之前正在等待diagnostics.asp页面完成.僵局!

这在每台IIS6机器上工作正常,我相信有一些IIS7服务器也可以正常工作.

我已经证实这不是我们古怪诊断的结果.从一台计算机或甚至单独的计算机加载多个选项卡将显示Web进程一次处理一个.


AnthonyWJones的正确答案:在IIS7中打开了服务器端调试.这使IIS进入单线程模式.

Ant*_*nes 29

在IIS管理器中,单击树中的应用程序.

双击IIS部分下的ASP.

展开"调试属性"

确保"启用客户端调试"和"启用服务器端调试"都设置为false.

启用调试时,ASP仅限于以单线程方式一次处理一个请求.


Jer*_*eer 5

首先:确保您使用多个客户端进行测试。一台计算机同时仅向同一服务器(IP 地址)发出 2 个 HTTP 请求。(这是 RFC 规范。)

如果这不能解决您的问题,请查看 IIS7 -> ASP -> 服务 -> COM Plus 属性 -> 在 MTA 中执行。尝试将此设置设置为“True”。

希望这可以帮助。