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 服务的主要内容,如果未能解决你的问题,请参考以下文章
Mac 上的 Service Fabric Docker 仅公开一个端口
使用WS-MetadataExchange为外部客户端和WcfTestClient公开来自Service Fabric的WCF / TCP端点
使用 WS-MetadataExchange 为外部客户端和 WcfTestClient 从 Service Fabric 公开 WCF/TCP 终结点