WCF 终结点在 Service Fabric 中公开多个协定
WCF Endpoints Exposing Multiple Contracts in Service Fabric
我能够在前几天提交的 中自定义 WcfCommunicationListener 上的 ServiceHost。但是,在无状态服务上托管多个 WCF 端点时,我现在从 Service Fabric 得到一些非常奇怪的行为。
我正在为 ServiceInstanceListner 数组分配多个侦听器:
我确保它们每个都有唯一的名称、唯一的合同、自定义端点和路径。
当部署到 ServiceFabric 时,它们都按预期显示为该服务上的点:
当我启动我的 WcfTestClient 并调用其中一个端点时,我按预期取回了方法:
然而,一旦我调用其他服务,奇怪的事情就开始了,我可以看到两个合同都暴露在同一个端点上:
第二次调用初始端点会产生类似的结果:
如果我从 Visual Studio 项目添加服务引用,也会出现同样的问题。我还将其推送到 Azure 上的集群以确保它不是本地问题。
我已经对我的代码进行了数百次梳理,以确保 listener/servicehost 不会与对方共享任何契约、端点或其他实施细节,因此我不知道如何将它们隔离开来。
我有非常相似的代码,我正在从一个云服务项目中迁移,并且以前在该平台上工作时从未见过这样的代码。关于如何确保端点隔离的任何想法?我尝试使用单独的端口无济于事,我很茫然。
我确实在 WcfTestClient 生成的配置文件中注意到我在每个服务上都表示了两个 netTcpBindings - 但我无法判断这是症状还是原因:
我试图重现这个问题,但它按预期工作。
我已经在这里上传了样本
https://github.com/suchiagicha/Samples
然后您可以告诉我们您是否在做任何不同的事情。
我能够在前几天提交的
我正在为 ServiceInstanceListner 数组分配多个侦听器:
我确保它们每个都有唯一的名称、唯一的合同、自定义端点和路径。
当部署到 ServiceFabric 时,它们都按预期显示为该服务上的点:
当我启动我的 WcfTestClient 并调用其中一个端点时,我按预期取回了方法:
然而,一旦我调用其他服务,奇怪的事情就开始了,我可以看到两个合同都暴露在同一个端点上:
第二次调用初始端点会产生类似的结果:
如果我从 Visual Studio 项目添加服务引用,也会出现同样的问题。我还将其推送到 Azure 上的集群以确保它不是本地问题。
我已经对我的代码进行了数百次梳理,以确保 listener/servicehost 不会与对方共享任何契约、端点或其他实施细节,因此我不知道如何将它们隔离开来。
我有非常相似的代码,我正在从一个云服务项目中迁移,并且以前在该平台上工作时从未见过这样的代码。关于如何确保端点隔离的任何想法?我尝试使用单独的端口无济于事,我很茫然。
我确实在 WcfTestClient 生成的配置文件中注意到我在每个服务上都表示了两个 netTcpBindings - 但我无法判断这是症状还是原因:
我试图重现这个问题,但它按预期工作。 我已经在这里上传了样本 https://github.com/suchiagicha/Samples
然后您可以告诉我们您是否在做任何不同的事情。