IIS7 - 每次只担任了一个页面。这是一个让我疯了! [英] IIS7 - only serves up one page at a time. It's a making me crAzY!

查看:274
本文介绍了IIS7 - 每次只担任了一个页面。这是一个让我疯了!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Situation: Classic ASP application, using a custom Application Pool. Default settings.

部分的IIS7的机器,IIS决定在同一时间只服务于一个页面。因此,如果多个负载从一个网站的任何页面,每个人都有陆续加载。

On some IIS7 machines, IIS decides to serve only one page at a time. So if multiple load any pages from a site, each one has to load in succession.

例如。如果我加载 http://foo.com/default.asp 从一个浏览器,并从另一台机器我加载的http://foo.com/differenturl.asp ,首先必须完成,然后对方就会加载。这几乎就像W3P过程是单线程的。

e.g. If I load http://foo.com/default.asp from one browser, and from another machine I load http://foo.com/differenturl.asp, the first has to finish before the other will load. It's almost like the w3p process is single threaded.

请注意,有一个名为高级设置进程数为IIS,说:将其设置为大于1,创建一个Web花园(无论是)设置。这并没有解决这个问题,因为这滋生与自己的会话状态等多个流程,而当你加载 http://foo.com/default。 ASP 中有没有办法保证你会被分配给相同的过程。

Note, there is a setting called MaxProcesses in the Advanced Settings for IIS that says "Set this to greater than 1 to create a Web Garden" (whatever that is). This does NOT solve the problem because this spawns multiple processes with their own session state etc, and when you load http://foo.com/default.asp there's no way to guarantee you get assigned to the same process.

问题显露了出来,因为我们有它加载网站上的网址,并返回结果的诊断页这是写在ASP创建和ActiveX控件。

The problem revealed itself because we have a diagnostic page which is written in ASP that creates and ActiveX control which loads a url on the website and returns the results.

所以,diagnostics.asp负载和服务器端的code它创建了一个小型Web控件加载(认为XMLHTTP控制)在同一服务器上Default.asp的。

So, diagnostics.asp loads and in the code on the server side it creates a small web control that loads (think XMLHTTP control) default.asp on the same server.

这个页面将永远不会完成加载,因为服务器正在等待diagnostics.asp页面来完成它服务的Default.asp的页面之前。死锁!

This page will NEVER finish loading, because the server is waiting for the diagnostics.asp page to finish before it serves the default.asp page. Deadlock!

这每一个IIS6的机器上正常工作在那里,我相信有它工作正常,也有些IIS7的服务器。

This works fine on every IIS6 machine out there, and I believe there are some IIS7 servers where it works fine too.

我已经验证了这不是我们的离奇诊断的结果,无论是。从一台机器加载多个标签,甚至是单独的机器将显示该网页的过程处理它们一次一个。

I've verified it's not a result of our quirky diagnostic either. Loading multiple tabs from one machine, or even separate machines will show that the web process handles them one at a time.


正确答案按AnthonyWJones:服务器端的调试是在IIS7打开。这使得IIS成单线程模式。

Correct Answer by AnthonyWJones: Server Side debugging was turned on in IIS7. This puts IIS into single threaded mode.

推荐答案

在上树的应用程序IIS管理器中点击。

In IIS manager click on the application in the tree.

双击下的IIS部分ASP。

Double click ASP under the IIS section.

展开调试属性

确保两个启用客户端调试和启用服务器端调试都设置为false。

Ensure both "Enable Client-side Debugging" and "Enable Server-side debugging" are set to false.

当启用了调试ASP仅限于单线程方式处理一次一个请求。

When debugging is enabled ASP is limited to processing one request at a time in a single threaded manner.

这篇关于IIS7 - 每次只担任了一个页面。这是一个让我疯了!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆