【发布时间】:2017-08-08 07:51:37
【问题描述】:
我可以通过前几天提交的 this post 自定义 WcfCommunicationListener 上的 ServiceHost。但是,当在无状态服务上托管多个 WCF 终结点时,我现在从 Service Fabric 获得了一些非常奇怪的行为。
我正在为 ServiceInstanceListner 数组分配多个侦听器:
我确保他们每个人都有一个唯一的名称,以及唯一的合同,以及自定义端点和路径。
当部署到 ServiceFabric 时,它们都按预期显示为该服务上的端点:
当我启动 WcfTestClient 并调用其中一个端点时,我会按预期取回方法:
但是,一旦我调用另一个服务,奇怪的事情就开始了,我可以看到两个合约都暴露在同一个端点上:
再次调用初始端点会产生类似的结果:
如果我从 Visual Studio 项目添加服务引用,则会出现同样的问题。我还将此推送到 Azure 上的集群,以确保它不是本地问题。
我已经对我的代码进行了数百次梳理,以确保侦听器/服务主机都不会与对方共享任何合同、端点或其他实现细节,因此我不知道如何保持这些隔离。
我有非常相似的代码,我正在从云服务项目迁移,并且在该平台上工作时从未见过这种情况。关于如何确保端点隔离的任何想法?我尝试使用单独的端口无济于事,不知所措。
我确实在 WcfTestClient 生成的配置文件中注意到我在每个服务上都表示了两个 netTcpBindings - 但我不知道这是症状还是原因:
【问题讨论】:
标签: c# wcf azure azure-service-fabric