4

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.

4

2 Answers 2

7

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.

5
  • 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, 2009 at 19:17
  • This worked for me, thanks! I'm now able to run IIS7 and Apache on the same server under port 80. Aug 29, 2009 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, 2014 at 20:44
  • Thank you so much - this allowed me to host a bunch of Atlassian products, which run their own instance of Tomcat (JIRA Software, Confluence, etc) alongside my IIS applications.
    – eckza
    Jul 7, 2017 at 13:03
  • 1
    @kivetros - Glad I could help! Jul 7, 2017 at 21:57
0

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.

2
  • httpcfg is for Windows Server 2003 only, not for 2008
    – Shrike
    Jul 3, 2009 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, 2009 at 19:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .