Service Fabric - 如何在外部公开 wcf 服务

Posted

技术标签:

【中文标题】Service Fabric - 如何在外部公开 wcf 服务【英文标题】:Service Fabric - how do I expose a wcf service externally 【发布时间】:2016-09-07 19:47:45 【问题描述】:

我已经查看了关于 azure service fabric 的 wcf 文档,但似乎仅有的示例显示了如何将其公开给其他结构服务。我想公开一个 wcf 端点,就像我想要一个休息端点一样,所以我可以将它映射到一个公共 IP 地址。

有什么想法吗?

【问题讨论】:

【参考方案1】:

我必须解决这个确切的场景。

您根本不需要返回侦听器。您需要在“Service Manifest.xml”中打开一个端点。您在此处绑定 ssl 证书等(我假设您知道这部分)。

<Endpoint Name="Test.WcfTypeEndpoint" Protocol="https" Type="Input" CertificateRef="MySSL" Port="44330"  />

您现在可以打开服务主机,它会将请求路由到它们。打开服务时在绑定中使用强通配符 - 否则它不会在它最终所在的节点上解析。

public class InternalBinding : Binding

    private readonly HttpsTransportBindingElement _transport;

    public InternalBinding()
    
         _transport = new HttpTransportBindingElement
         
             HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
             // etc
         
    

【讨论】:

很好奇为什么需要强通配符,因为它是系统提供的 WCF 绑定的默认值 - msdn.microsoft.com/en-us/library/… 当我尝试不同的比较模式时,很可能会被留在里面。根据记忆,其他比较模式不起作用,所以我可能已经明确说明以节省其他人的实验时间。

以上是关于Service Fabric - 如何在外部公开 wcf 服务的主要内容,如果未能解决你的问题,请参考以下文章

(现代)React 功能组件可以在外部公开有状态方法吗?

Mac 上的 Service Fabric Docker 仅公开一个端口

使用WS-MetadataExchange为外部客户端和WcfTestClient公开来自Service Fabric的WCF / TCP端点

使用 WS-MetadataExchange 为外部客户端和 WcfTestClient 从 Service Fabric 公开 WCF/TCP 终结点

如何从私有 AWS ALB 公开 API 端点

从远程位置访问 Service Fabric RPC 接口