Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Given: two dns names which points to one machine: "mysrv" and "myapp.mysrv". This machine has two ip address (1.1.1.1 and 1.1.1.2).

I need to set up IIS7 on 1.1.1.1 for myapp.mysrv and TomCat for 1.1.1.2 for mysrv.
I need the server serves two resources (mysrv and myapp.mysrv ) on 80 port.

What I did: In TomCat's config (server.xml) I add 'address' attribute to Connector element:

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="80" minProcessors="5"
           address="1.1.1.2"
           maxProcessors="75"
           enableLookups="false" redirectPort="8443" acceptCount="10" />

and

<Engine name="Standalone" defaultHost="mysrv" debug="0">
    <Host name="mysrv" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false">

Then in IIS Manager I create a site and set up binding for it as: Type=http;Host Name=myapp.srv;Port=80; IP Address=1.1.1.1

But when I try to start the site I get two errors (in EventLog): 1. World Wide Web Publishing Service (WWW Service) did not register the URL prefix http://myapp.mysrv:80:1.1.1.1/ for site 2. The site has been disabled. The data field contains the error number.

2. Unable to bind to the underlying transport for [::]:80. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.

share|improve this question
    
Did you restart Tomcat after changing the server.xml file? –  Adam Brand Jul 3 '09 at 18:29
    
yes, I restarted –  Shrike Jul 3 '09 at 18:38
    
Do I understand correcly that I need to set up dns aliases (myapp.mysrv and mysrv) to point to these ip's? –  Shrike Jul 3 '09 at 19:49
    
a useful link: weblogs.asp.net/steveschofield/archive/2007/07/06/… –  Shrike Jul 3 '09 at 19:54

2 Answers 2

up vote 6 down vote accepted

By default, IIS binds to port 80 on all IP's on the machine. To disable this behavior in IIS 7, execute the following command, substituting in the IP address you want IIS to listen on:

netsh http add iplisten ipaddress=xxx.xxx.xxx.xxx

You'll need to restart IIS for the change to take effect.

share|improve this answer
    
Yeah! IIS and TomCat have started and running together. Great, thanks. Localy I get access two apps (on IIS through myapp.mysrv and on TomCat through mysrv). But remotely I have access to myapp.mysrv and no access to mysrv. On the server I add these line to etc/hosts: 1.1.1.1 myapp.mysrv 1.1.1.2 mysrv –  Shrike Jul 3 '09 at 19:17
    
This worked for me, thanks! I'm now able to run IIS7 and Apache on the same server under port 80. –  nbolton Aug 29 '09 at 0:15
    
@EvanAnderson would you mind looking at my question please? It relates to this one, but with a twist serverfault.com/questions/620805/… –  n00b Aug 15 at 20:44

Try doing:

httpcfg set iplisten -i 1.1.1.1:80

from the command prompt. It could be socket pooling...IIS wants to listen on all IP's by default (as Evan said), so it throws a fit when Tomcat takes one of them away.

share|improve this answer
    
httpcfg is for Windows Server 2003 only, not for 2008 –  Shrike Jul 3 '09 at 19:20
    
Ah...you are right! I didn't realize that. It looks like Evan was spot on with his answer. –  Adam Brand Jul 3 '09 at 19:36

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.