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仅限于以单线程方式一次处理一个请求.
首先:确保您使用多个客户端进行测试。一台计算机同时仅向同一服务器(IP 地址)发出 2 个 HTTP 请求。(这是 RFC 规范。)
如果这不能解决您的问题,请查看 IIS7 -> ASP -> 服务 -> COM Plus 属性 -> 在 MTA 中执行。尝试将此设置设置为“True”。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
11093 次 |
| 最近记录: |