为服务总线中继绑定设置 Azure Service Fabric 侦听器
Posted
技术标签:
【中文标题】为服务总线中继绑定设置 Azure Service Fabric 侦听器【英文标题】:Setup a Azure Service Fabric Listener for Service Bus Relay Binding 【发布时间】:2017-08-20 17:08:31 【问题描述】:我想在托管在 Azure 中的 Service Fabric 群集和我的专用网络之间设置 Azure 服务总线中继。
我无法通过 Service Fabric WCF 服务配置服务总线中继。
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
return new[]
// Standard WCF Listener
new ServiceInstanceListener(context =>
new WcfCommunicationListener<IFooService>(
wcfServiceObject: this,
serviceContext: context,
endpointResourceName: "WcfServiceEndpoint",
listenerBinding: WcfUtility.CreateTcpListenerBinding()
)
),
// Service Bus Relay Listener
new ServiceInstanceListener(context =>
var wcfRelay = new WcfCommunicationListener<IFooService>(
wcfServiceObject: this,
serviceContext: context);
wcfRelay.ServiceHost.AddServiceEndpoint(
typeof(IFooService),
new NetTcpRelayBinding(),
ServiceBusEnvironment.CreateServiceUri(
"sb",
"mynamespace.servicebus.windows.net",
"myservce"))
.Behaviors.Add(new TransportClientEndpointBehavior
TokenProvider =
TokenProvider.CreateSharedAccessSignatureTokenProvider(
"RootManageSharedAccessKey",
"mykey")
);
return wcfRelay;
)
;
【问题讨论】:
你能提供更多关于什么不起作用的信息吗?您是否收到某些特定错误?相同的配置是否适用于同一环境中的自托管 WCF 服务? 自托管的 WFC 工作正常,至于什么不工作。只是没有......没有例外,没有日志,它只是默默地阻止服务启动 【参考方案1】:protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
return new[]
new ServiceInstanceListener(context =>
var listener = new WcfCommunicationListener<IFooService>(
serviceContext: context,
wcfServiceObject: new FooService(),
listenerBinding: new WebHttpRelayBinding(EndToEndWebHttpSecurityMode.None,RelayClientAuthenticationType.None),
address: new EndpointAddress( ServiceBusEnvironment.CreateServiceUri("https","[ServiceBusNamespace]","[RelayEndPoint]"))
);
var ep = listener.ServiceHost.Description.Endpoints.Last();
ep.EndpointBehaviors.Add(
new TransportClientEndpointBehavior()
TokenProvider = TokenProvider.CreateSharedSecretTokenProvider("owner","[issuerSecret]")
);
ep.EndpointBehaviors.Add(
new ServiceRegistrySettings(discoveryType:DiscoveryType.Public));
ep.EndpointBehaviors.Add(new WebHttpBehavior());
return listener;
)
;
【讨论】:
您能否详细说明您的解决方案?添加一些解释性文字?以上是关于为服务总线中继绑定设置 Azure Service Fabric 侦听器的主要内容,如果未能解决你的问题,请参考以下文章
Service Fabric Actor 订阅 Azure 服务总线主题