繁体   English   中英

运行IIS和WCF应用程序在同一端口上侦听时发生冲突(443)

[英]Conflict when running IIS and WCF application listening on the same port (443)

我正在进行服务器迁移,在尝试使用相同的IP地址和端口同时托管WCF应用程序和IIS时遇到一个问题。 (这在我们的其他服务器上完美运行)

新服务器是Windows 2012 R2 Standard

它正在运行IIS 8.5.9600.16384

我正在尝试创建以前安装的精确副本,以便在轻按开关(星期二)时,我们所有现有的客户端都将继续工作。

WCF应用程序作为Windows服务运行。

当我“启动”该网站时,我可以访问那里的Web服务。

如果我停止该网站并启动WCF应用程序,则可以访问WCF的服务。

如果然后我重新启动该网站,则WCF服务停止工作。

基本上,我不能同时使它们同时工作,但这在以前的服务器上可以正常工作。

我在某处缺少设置吗?

我正在听的地址是...

https://test.banana.com/WebServices/myservice.asmx

https://test.banana.com/WCFService/mywcf.rem

*在此示例中,我使用的是虚拟域名

**此外,实时服务器具有不同的域名,因此这里没有冲突。

我认为同一台计算机上的多个进程无法监听单个端口。 操作系统如何知道将网络请求发送到哪里?

使用不同的DNS没关系,因为DNS过滤/调度发生在HTTPS服务收到GET或POST(或其他)请求之后。 在此之前,操作系统无法知道请求将进入哪个进程。 使用HTTPS会使情况更加复杂,因为使用仅服务知道的证书对请求进行了加密,因此OS无法读取该请求。

我建议让IIS在端口443上托管所有服务。它可以使用请求标头为多个HTTPS站点定向流量。 由于您向IIS提供了证书,因此IIS可以读取HTTPS请求。 您可以在IIS中很好地托管WCF服务。

对于托管服务,IIS比自托管服务更可靠。

看来,这毕竟可能的,而且我现在有工作。

基本上,我无法在IIS和WCF服务之间共享端口的唯一原因是,我在IIS绑定中指定了“主机名”。 删除主机名(我将其设置为test.banana.com )后,我的两个服务都开始工作。

我猜测这与IP地址/端口和主机名需要匹配才能使端口共享正常工作有关。 当我在IIS中而不是WCF中指定主机名时,可能无法确定它是同一终结点(事实可能并非如此)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM