Friday, February 25, 2011

Problem installing vCenter Server 4.1 with error: “The following port numbers are either invalid or already is use. VMware VirtualCenter HTTP Port: 80”

It’s been a while since I’ve done a vCenter server install where a full SQL Server 2008 instance is installed locally on the same server so while I’ve done quite a fell 4.0 installs, I’ve never really done one with 4.1.  As you’ve probably already guessed, I had to do one today and ran into the error message included in the title of this post and I would like to share ONE of the MANY reasons why you would encounter this.

Problem

You’ve decided that you would like to collocate the SQL Server instance for your vCenter 4.1 install on the same Windows Server 2008 R2 64-bit and since SQL Server 2008 R2 requires you to install .NET 3.5.1 installed as a feature on the server, which will also install the IIS role on the server, you will be warned with the following message upon launching the vCenter Server 4.1 installation:

VMware vCenter Server

Setup has detected that a web server, such as IIS, is installed on this machine.

vCenter Server uses common web service ports for communication. To avoid resource conflicts, a dedicated machine for vCenter Server is recommended. Do you still want to continue?

image

Proceeding with the install will throw no errors or warnings up till the following Configure Ports window:

image

Upon clicking the Next button, the following error will be displayed:

The following port numbers are either invalid or already in use.

VMware VirtualCenter HTTP Port: 80

Note:

The vCenter Server ports must be in [1 - 65535] range.

The LDAP and SSL ports for the Directory Services instance must be 389 and 636 respectively or in the range of –1025 - 65535].

image

Clicking the OK button will return you to the previous window but you will not be allowed to proceed.

Troubleshooting

As noted in the warning that is presented when you initially launch the vCenter 4.1 install, we have the IIS Web Server role installed on the server because it is a dependency of the .NET 3.5.1 feature we need for SQL Server 2008.

image

What should be noted is that if you try to remove the Web Server (IIS) role, you will be warned that all the other features that are dependent on this role will also need to be removed:

image 

image

If you also make an attempt to try and just remove some of the role services for the Web Server (IIS) role, there are really only 2 that you can remove:

image

.NET Extensibility

image

Which will also force you to remove .NET Framework 3.5.1 Features:

image

Request Filtering

image

Which will also force you to remove .NET Framework 3.5.1 Features:

image

Seeing how we cannot simply remove the role services, we can turn our attention to trying to determine which service is locking onto the port through native Windows commands such as: NETSTAT with the “–abo” switch:

image

… as well as the Process Explorer tool provided by Windows Sysinternals http://technet.microsoft.com/en-us/sysinternals/bb896653:

image

Through the tracking information collected with these tools, you’ll realize that the service that’s locking port 80 is actually the World Wide Web Publishing Service:

image

Unfortunately, because this service is installed and set to automatically start when you install the Web Server (IIS) role which cannot be removed, the way around this is to actually stop and disable the service within the Services Console:

image

image

Once the service has been stopped, you will now be able to proceed with the install:

image

image

Reviewing the information provided by process explorer will show that port 80 is no longer locked by PID 4 (System) process:

image

For more information about the World Wide Web Publishing Service service, see the following link: http://technet.microsoft.com/en-us/library/cc734944(WS.10).aspx.

Please keep in mind that if you have other application services on the server that is dependent on the World Wide Web Publishing Service, your application will no longer function when you’ve disabled this service so ensure that you do not inadvertently affect another service. 

If you ever run into an issue where you cannot disable the World Wide Web Publishing Service, the alternative is to use a port other than port 80 for vCenter.

1 comment:

Anonymous said...

Just by disabling following services you can achieve the same

1. SQL Server reporting service
2. World Web Publishing Service