7

Server 2008 R2 SP1
VisualSVN Server 2.1.6

The IIS server has about 10 sites. One of them uses https over port 443 with the following bindings:

http x.x.x.39:80 site.com
http x.x.x.39:80 www.site.com
https x.x.x.39:443

VisualSVN Server Properties

server name: svn.SomeSite.com
server port: 443
Server Binding: x.x.x.40

No sites on IIS are listening to x.x.x.40.

When starting up VisualSVN server, the following errors are thrown:

  • make_sock: could not bind to address x.x.x.40:443 (OS 10013) An attempt was made to access a socket in a way forbidden by its access permissions.
  • no listening sockets available, shutting down

When I stop Site.com on IIS, then VisualSVN Server starts up without a problem. When I bind VisualSVN server to port 8443 and start Site.com, then VisualSVN Server starts without a problem.

My goal is to be able to access the VisualSvn Server with a normal url, i.e., one that does't use a port number in the address:

https://svn.site.com vs https://svn.site.com:8443

What needs to be configured to allow VisualSVN Server to run on port 443 with IIS running on the same server?

Edit / Answer

The answer provided by Ivan did point me in the right direction. For anyone else running into this, here is a bit more information.

Even though my IIS had no bindings set to the IP address I am using for VisualSvn, IIS will still take the IP address hostage unless IIS is explicitly told which IP addresses to listen to.

There is no GUI in Win Server 2k8 to configure the IP addresses for IIS to listen; by default, IIS listens to all IP addresses assigned to the server.

The following will help configure IIS to only listen to the IP addresses you want:

  1. open a command prompt
  2. enter: netsh
  3. enter: http
  4. enter: show iplisten --> this will show a table of the IP addresses IIS is listening to. By default, the table will be empty (I guess this means IIS listens to all IP's)
  5. For each IP address IIS should listen to, enter: add iplisten ipaddress=x.x.x.x
  6. enter: show iplisten --> you should now see all the IP addresses added to the listening table.
  7. Exit and then reset IIS.

Each of these commands can also be run directly, i.e., netsh http show iplisten

If you need to delete an IP address from the listening table:

  1. open a command prompt
  2. enter: netsh
  3. enter: http
  4. enter: delete iplisten ipaddress=x.x.x.x
  5. Exit and then reset IIS.
Metro Smurf
  • 209
  • 1
  • 3
  • 12
  • Don't forget to add 127.0.0.1 so IIS will pickup "localhost" calls. I needed this for TFS which is on the same server as VisualSVN. – Neal Nov 17 '13 at 18:01

2 Answers2

4

Already answered there. Use the following command:

netsh http add iplisten ipaddress=x.x.x.39
Ivan Zhakov
  • 1,806
  • 14
  • 15
  • 1. What exactly does that do? 2. Is there a GUI on server 2k8 to configure this as well? 3. Where would I view a list of all IP addresses IIS is listening to? – Metro Smurf Mar 17 '11 at 13:37
  • 1. This command instructs IIS to listen on one network interface, instead of all available interface. 2. There is no GUI for this feature. 3. You can use "netsh http dump iplisten" command to list currently configured bindings. – Ivan Zhakov Mar 17 '11 at 13:51
1

Two separate processes cannot bind to the same port on the same address.

A couple options would be to add a second IP address to the server, or to use a reverse proxy that's able to serve up both sites on 443 via the same process.

Shane Madden
  • 112,982
  • 12
  • 174
  • 248