簡體   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