Setting metabase property DisableSocketPooling has no effect (813368)
The information in this article applies to:
- Microsoft Internet Information Services version 6.0
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.CAUSETo 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. RESOLUTIONTo install Microsoft Windows support tools:- Insert the Windows Server 2003 CD in the CD-ROM or DVD-ROM
drive.
- When the CD opens, click Perform Additional
Tasks.
- Click Browse this CD.
- Double-click Support.
- Double-click Tools.
- Double-click SUPTOOLS.MSI.
- Click Next, type your information in the
Name and Organization boxes, click
Next, and then click Next on the following
screen.
- Click Next again to start the
installation.
- Click Finish.
To add an IP address to the IP inclusion list:
- Click Start, and then click
Run.
- Type cmd, and then click
OK to open a command prompt.
- 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.
- After the IP address is added, use the following command to
list it: Httpcfg returns the following:
STATUS This
behavior is by design.MORE INFORMATIONIIS 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. Note The HTTP service and the HTTP SSL service are different services. The HTTP service does not appear in the services list and must be restarted at a command prompt. To do this, follow these steps: - 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.
- 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. REFERENCESFor help with
using this command, see the Httpcfg online help. To access the Httpcfg online
help, type Httpcfg /? at a command prompt, or follow
these steps:
- Click Start.
- Click All Programs.
- Click Windows Support Tools.
- Click Support Tools Help.
- Click H under Alphabetical List of
Tools by File Name.
- Double-click Httpcfg.exe ( HTTP Configuration
Utility).
For more information about
DisableSocketPooling, click the following article number to view the article in the Microsoft Knowledge Base:
238131
How to disable socket pooling
| Modification Type: | Major | Last Reviewed: | 7/25/2005 |
|---|
| Keywords: | kbhowto KB813368 kbAudDeveloper |
|---|
|