2017-03-16 144 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