2017-03-16 116 views
0

我可以在前一天提交的上自定義WcfCommunicationListener上的ServiceHost。但是,當在無狀態服務上託管多個WCF端點時,我現在從Service Fabric中獲得了一些非常奇怪的行爲。WCF端點公開服務結構中的多個合同

我分配多個聽衆的ServiceInstanceListner陣列:enter image description here

我保證他們每個人都有一個唯一的名稱,以及獨特的合同,以及自定義端點和路徑。

當部署到ServiceFabric他們都表現出了預期的那樣對服務enpoints:

enter image description here

當我火了我的WcfTestClient並調用一個端點我找回方法如預期:

enter image description here

然而,一旦我打電話通知其他服務的陌生感開始,我可以看到在同一端點暴露兩份合同:

enter image description here

調用初始端點第二次得到了類似的結果:

enter image description here

如果我從出現同樣的問題,Visual Studio項目中添加服務引用。我還將此推送到Azure上的羣集以確保它不是本地問題。

我已經梳理了我的代碼數百次,以確保listener/servicehost不會與另一個共享任何合同,端點或其他實現細節,因此我不知道如何保持這些隔離。

我有一個非常類似的代碼,我正在從Cloud Services項目遷移,並且在該平臺中工作之前從未見過這種代碼。關於如何確保端點隔離的任何想法?我嘗試使用單獨的端口無濟於事,並且無所適從。

我也注意到在由WcfTestClient生成的配置文件,我在每一個服務代表都netTcpBindings - 但我不能告訴我們,如果這是一種症狀或原因:

enter image description here

回答

0

我想瑞普這個問題,但它按預期工作。 我已經在這裏上傳了樣品 https://github.com/suchiagicha/Samples

然後你可以告訴我們你是否在做任何不同的事情。

+0

謝謝,我明天會試試這個,並告訴你它是否有效,如果有的話,我會和我的解決方案進行比較,併發布我的發現。 – CodeAbundance

+0

謝謝,您的示例按預期工作,我能夠將您的端點創建配方實現到我的解決方案中,並且現在按預期工作。我不是100%確定爲什麼我的代碼無法工作 - 但我確實注意到,您的方法要求元數據交換端點位於與偵聽器不同的端口上(否則會導致Service Fabric上發生異常)。這可能會造成所有差異。 – CodeAbundance