如何访问在Windows Server 2012上运行的Apache Tomcat(与Microsoft SMTP服务一起)

我正在运行Apache Tomcat作为Windows Server 2012上唯一的HTTP服务器。

Tomcat已作为服务安装,并绑定到端口80. server.xml文件已将address="0.0.0.0"添加到连接器,并且Windows防火墙已针对所有端口80请求打开。

我的应用程序需要发送电子邮件警报给用户。 通过本地托pipe的SMTP服务(Apache James)进行直接交付一直是不可靠的。 为了确保这些电子邮件的发送,我select通过我们的主要电子邮件服务,微软的在线Office365服务来转发我的电子邮件。 要通过此服务进行中继,TLSencryption和其他安全措施是必要的。 正如你所想象的那样,微软的SMTP服务能够很好地发挥作用,但是我很难让其他基于Windows或者Java的服务正确地继续传输。 为了启用电子邮件传送,我安装了内置的Windows Server SMTP服务。

这个configuration一直很好,直到昨晚安装了最新一轮的Windows更新。 现在,我无法访问我的Tomcat服务器,并且端口80上的所有请求都不成功。 Tomcat日志显示:

 SEVERE: Error initializing endpoint java.lang.Exception: Socket bind failed: [730013] An attempt was made to access a socket in a way forbidden by its access permissions. at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:589) ... 

我的谷歌search导致了一些链接,暗示IIS套接字池是责任。

我已经尝试使用netsh http add iplisten 192.168.1.8为tomcat保留端口80,这允许Tomcat启动并在本地绑定。 我现在可以在本地机器上使用http://localhost/http://127.0.0.1/来查看我的Tomcat站点。 但是,通过http://192.168.1.8/或通过任何networking连接访问仍然失败。

我无法find有关如何在Windows Server 2012上完全禁用IIS套接字池的任何文档(所有链接均指在当前服务器版本中似乎已被删除/取代的旧版本和脚本。

更新:似乎安装(不折旧)的Windows SMTP服务,也安装并自动运行IIS。 安装过程只显示pipe理工具 – 但是当您检查IISpipe理控制台时,有默认网站,占用80端口本身。 当然,在任何第三方Web服务器启动之前,需要进行控制。 叹。 更改IIS站点到一个不同的端口或完全停止似乎允许Tomcat再次工作。