簡體   English   中英

負載均衡器后面的WCF - 如何設置

[英]WCF behind load balancer - how to setup

我們有幾個使用負載均衡器的Web服務器。 機器在端口81上運行IIS6。在外部,可以使用端口80訪問站點。外部名稱和機器名稱不同。

我們得到了

System.ServiceModel.EndpointNotFoundException: The message with To '<url>' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree.

web.config的相關部分是:

  <endpoint binding="ws2007HttpBinding" bindingConfiguration="MyServiceBinding"
    contract="MyService.IMyService" listenUriMode="Explicit" />

我們嘗試添加listenUri,但這並沒有解決我們的問題。

有任何想法嗎?

[ServiceBehavior(AddressFilterMode=AddressFilterMode.Any)]

將此屬性置於服務上可以解決問題。

什么是具體的負載均衡器? 使用F5 BIG-IP,我們可以很容易地使用它,但我們在nlb上使用相同的端口和(相對)uri作為單獨的機器(因此,如果我們選擇,我們可以將單個機器視為與農場相同)。 顯然,每台機器都有不同的名稱,但此設置還允許您通過欺騙主機來測試單個服務器 - 例如,通過編輯HOSTS文件將[您的服務器場名稱]指向[測試服務器IP]。

我們最大的痛苦是SSL; 使用TransportWithMessageCredential安全性,WCF拒絕入站http連接 - 所以我們必須設置nlb以在nlb和服務器節點之間重新加密 - 但不是一個大問題。

我們唯一的另一個問題是在IIS中托管WCF,並且WCF無法通過http正確識別目標站點(盡管IIS很好)(但在https上很好)。 為了解決這個問題,我編寫了一個完全忽略http的自定義工廠(僅在https上監聽) - 無論如何都與TransportWithMessageCredential要求完全相關,所以我並不為此煩惱。

我想知道你是否會通過在標准端口上托管而不是作為一個不同的站點(IP /主機頭/等)來獲得更多的快樂。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM