【问题标题】:WCF Endpoints Exposing Multiple Contracts in Service FabricWCF 终结点在 Service Fabric 中公开多个合同
【发布时间】: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


    【解决方案1】:

    我试图重现此问题,但它按预期工作。 我已经在这里上传了样本 https://github.com/suchiagicha/Samples

    然后您可以告诉我们您是否正在做任何不同的事情。

    【讨论】:

    • 谢谢,我明天试试这个,让你知道它是否有效,如果有效,将与我的解决方案进行比较并发布我的发现。
    • 谢谢,您的示例按预期工作,我能够将您的端点创建方法实施到我的解决方案中,现在它按预期工作。我不是 100% 确定为什么我的代码不起作用 - 但我确实注意到您的方法要求元数据交换端点与侦听器位于不同的端口上(否则会导致 Service Fabric 出现异常)。这可能使一切变得不同。
    猜你喜欢
    • 2017-05-14
    • 2017-09-02
    • 2019-05-06
    • 2017-08-05
    • 2016-10-15
    • 2017-06-26
    • 2016-09-07
    • 2018-04-05
    • 2016-09-27
    相关资源
    最近更新 更多