iis和apache在win上共用80端口的一篇文章
IIS 6.0: Setting Metabase Property DisableSocketPooling Has No Effect
View products that this article applies to.
Article ID : 813368
Last Review : January 13, 2004
Revision : 1.0
On this page
SYMPTOMS
CAUSE
RESOLUTION
To install Microsoft Windows support tools:
To add an IP address to the IP inclusion list:
STATUS
MORE INFORMATION
REFERENCES
APPLIES TO
SYMPTOMS
When you start Internet Information Services (IIS) 6.0 on Microsoft Windows Server 2003, IIS binds to all IP addresses on the server, not just the IP addresses that are assigned to Web sites. This may be true even though you have set the metabase property DisableSocketPooling to True.
Back to the top
CAUSE
To successfully allow applications to use the same port on different IP addresses, you must use a new utility, Httpcfg.exe. Httpcfg.exe is located on the Windows Server 2003 CD in the Support\Tools directory as part of the Support.cab file.
Back to the top
RESOLUTION
To install Microsoft Windows support tools:
1. Insert the Windows Server 2003 CD in the CD-ROM or DVD-ROM drive.
2. When the CD opens, click Perform Additional Tasks.
3. Click Browse this CD.
4. Double-click Support.
5. Double-click Tools.
6. Double-click SUPTOOLS.MSI.
7. Click Next, type your information in the Name and Organization boxes, click Next, and then click Next on the following screen.
8. Click Next again to start the installation.
9. Click Finish.
To add an IP address to the IP inclusion list:
1. Click Start, and then click Run.
2. Type cmd, and then click OK to open a command prompt.
3. Type the following, where xxx.xxx.x.x is the IP address you want to add:
httpcfg set iplisten -i xxx.xxx.x.x
When this succeeds, Httpcfg returns the following:
HttpSetServiceConfiguration completed with 0
To view additional status codes, see the Httpcfg help.
4. After the IP address is added, use the following command to list it:
httpcfg query iplisten
Httpcfg returns the following:
IP :xxx.xxx.x.x
Back to the top
STATUS
This behavior is by design.
Back to the top
MORE INFORMATION
IIS 5.0 uses the metabase property DisableSocketPooling to allow applications access to the same port over different IP addresses. Setting this value to True permits these applications to exist on the same Microsoft Windows 2000 installation.
Because DisableSocketPooling is defined as a valid property in the IIS 6.0 metabase schema (MBSchema.xml), you can still set this property by using Adsutil.vbs, but this has no effect. The functionality in IIS 6.0 is part of the new kernel level driver HTTP.sys. To configure HTTP.sys, you must use Httpcfg.exe.
In IIS 5.0, the TCP listener is Winsock. Winsock uses sockets and IIS is bound to the performance and scalability of the Winsock API. Socket pooling was introduced to address problems in Internet Information Server (IIS) 4.0 where resource usage was high with many Web sites using individual IP addresses.
To solve this scalability problem, IIS 5.0 uses socket pooling to allow resources to be shared. Socket pooling permits double or triple the number of sites to be run on a specific server with unique IP addresses. The DisableSocketPooling property is also introduced in IIS 5.0 and is used when another application is installed that requires use of a port that IIS listens on by default (such as port 80).
In IIS 6.0, HTTP.sys is the TCP listener and HTTP.sys does not use the Winsock API. Sockets are not a configurable property. HTTP.sys uses an IP inclusion list. By default, this list is blank and IIS listens on all IP addresses. You can specify the IP addresses IIS will listen on by adding them to the IP inclusion list.
Important The IP inclusion list is read during startup of the HTTP service. If you change the list, you must restart the service. To restart the HTTP service: 1. Click Start, click Run, and then type cmd to open a command prompt. At the command prompt, type net stop http /y and press ENTER. This stops the HTTP Secure Sockets Layer (SSL) service and the World Wide Web publishing services because they are dependent on the HTTP service.
2. To start the HTTP service, type net start w3svc at the command prompt. This starts the HTTP SSL service and the HTTP service.
After you add IP addresses to the IP inclusion list, you must add each IP address that is used by a Web site. If you bind a Web site to an IP address that is not on the list, the Web site does not start.
大 中 小
View products that this article applies to.
Article ID : 813368
Last Review : January 13, 2004
Revision : 1.0
On this page
SYMPTOMS
CAUSE
RESOLUTION
To install Microsoft Windows support tools:
To add an IP address to the IP inclusion list:
STATUS
MORE INFORMATION
REFERENCES
APPLIES TO
SYMPTOMS
When you start Internet Information Services (IIS) 6.0 on Microsoft Windows Server 2003, IIS binds to all IP addresses on the server, not just the IP addresses that are assigned to Web sites. This may be true even though you have set the metabase property DisableSocketPooling to True.
Back to the top
CAUSE
To successfully allow applications to use the same port on different IP addresses, you must use a new utility, Httpcfg.exe. Httpcfg.exe is located on the Windows Server 2003 CD in the Support\Tools directory as part of the Support.cab file.
Back to the top
RESOLUTION
To install Microsoft Windows support tools:
1. Insert the Windows Server 2003 CD in the CD-ROM or DVD-ROM drive.
2. When the CD opens, click Perform Additional Tasks.
3. Click Browse this CD.
4. Double-click Support.
5. Double-click Tools.
6. Double-click SUPTOOLS.MSI.
7. Click Next, type your information in the Name and Organization boxes, click Next, and then click Next on the following screen.
8. Click Next again to start the installation.
9. Click Finish.
To add an IP address to the IP inclusion list:
1. Click Start, and then click Run.
2. Type cmd, and then click OK to open a command prompt.
3. Type the following, where xxx.xxx.x.x is the IP address you want to add:
httpcfg set iplisten -i xxx.xxx.x.x
When this succeeds, Httpcfg returns the following:
HttpSetServiceConfiguration completed with 0
To view additional status codes, see the Httpcfg help.
4. After the IP address is added, use the following command to list it:
httpcfg query iplisten
Httpcfg returns the following:
IP :xxx.xxx.x.x
Back to the top
STATUS
This behavior is by design.
Back to the top
MORE INFORMATION
IIS 5.0 uses the metabase property DisableSocketPooling to allow applications access to the same port over different IP addresses. Setting this value to True permits these applications to exist on the same Microsoft Windows 2000 installation.
Because DisableSocketPooling is defined as a valid property in the IIS 6.0 metabase schema (MBSchema.xml), you can still set this property by using Adsutil.vbs, but this has no effect. The functionality in IIS 6.0 is part of the new kernel level driver HTTP.sys. To configure HTTP.sys, you must use Httpcfg.exe.
In IIS 5.0, the TCP listener is Winsock. Winsock uses sockets and IIS is bound to the performance and scalability of the Winsock API. Socket pooling was introduced to address problems in Internet Information Server (IIS) 4.0 where resource usage was high with many Web sites using individual IP addresses.
To solve this scalability problem, IIS 5.0 uses socket pooling to allow resources to be shared. Socket pooling permits double or triple the number of sites to be run on a specific server with unique IP addresses. The DisableSocketPooling property is also introduced in IIS 5.0 and is used when another application is installed that requires use of a port that IIS listens on by default (such as port 80).
In IIS 6.0, HTTP.sys is the TCP listener and HTTP.sys does not use the Winsock API. Sockets are not a configurable property. HTTP.sys uses an IP inclusion list. By default, this list is blank and IIS listens on all IP addresses. You can specify the IP addresses IIS will listen on by adding them to the IP inclusion list.
Important The IP inclusion list is read during startup of the HTTP service. If you change the list, you must restart the service. To restart the HTTP service: 1. Click Start, click Run, and then type cmd to open a command prompt. At the command prompt, type net stop http /y and press ENTER. This stops the HTTP Secure Sockets Layer (SSL) service and the World Wide Web publishing services because they are dependent on the HTTP service.
2. To start the HTTP service, type net start w3svc at the command prompt. This starts the HTTP SSL service and the HTTP service.
After you add IP addresses to the IP inclusion list, you must add each IP address that is used by a Web site. If you bind a Web site to an IP address that is not on the list, the Web site does not start.
大 中 小
评论