How to run VisualSVN Server on port 443 running IIS on same server?
- by Metro Smurf
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:
open a command prompt
enter: netsh
enter: http
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)
For each IP address IIS should listen to, enter: add iplisten ipaddress=x.x.x.x
enter: show iplisten -- you should now see all the IP addresses added to the listening table.
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:
open a command prompt
enter: netsh
enter: http
enter: delete iplisten ipaddress=x.x.x.x
Exit and then reset IIS.