Azure服务总线WCF中继超时

Azure服务总线WCF中继超时,azure,wcf,azureservicebus,azure-servicebusrelay,Azure,Wcf,Azureservicebus,Azure Servicebusrelay,我在Azure Service Bus WCF中继服务中遇到了一个问题,WCF客户端无法通过WCF中继从客户防火墙后面的本地服务中获得任何结果。WCF客户端作为Azure云服务在Azure上运行。WCF客户端报告的错误消息为: System.ServiceModel.FaultException: 50200: None of the connected listeners accepted the connection within the allowed timeout. TrackingI

我在Azure Service Bus WCF中继服务中遇到了一个问题,WCF客户端无法通过WCF中继从客户防火墙后面的本地服务中获得任何结果。WCF客户端作为Azure云服务在Azure上运行。WCF客户端报告的错误消息为:

System.ServiceModel.FaultException: 50200: None of the connected listeners accepted the connection within the allowed timeout. TrackingId:f11c6747-8628-44b3-9080-706e1a9122d5_G7, SystemTracker:xxxxxxxx.servicebus.windows.net:abc, Timestamp:2/21/2018 7:44:59 PM, Resource:sb://xxxxxxxx.servicebus.windows.net/abc

Server stack trace: 
   at 
System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Client.RemoteService.Call(String parameter1, String parameter2)
   ...
从本地WCF服务日志文件中,没有迹象表明该请求曾经发出过

我在其他客户防火墙后面的不同Azure WCF中继服务上运行相同的WCF服务。其他人正在工作。这使我相信问题是特定于该客户防火墙后面的网络环境的

我使用此特定错误消息搜索了此类问题,但找不到任何问题。类似的讨论与502错误代码有关,但与50200无关。这些讨论暗示了代理服务器设置。我已尝试在WCF服务上将BasicHttpRelayBinding.UseDefaultWebProxy设置为false。但这并没有解决问题

以下是WCF服务器端代码:

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Https;
var serviceAddress = ServiceBusEnvironment.CreateServiceUri("https", 
    "xxxxxxxx.servicebus.windows.net", "abc");

BasicHttpRelayBinding basicHttpRelayBinding = new BasicHttpRelayBinding();
basicHttpRelayBinding.UseDefaultWebProxy = false;

ServiceHost serverHost = new ServiceHost(typeof(MyService));
ServiceEndpoint serviceEndpoint = serverHost.AddServiceEndpoint(typeof(IMyService), 
    basicHttpRelayBinding, serviceAddress);
IEndpointBehavior endpointBehavior = new TransportClientEndpointBehavior
{
    TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(keyName, 
        keyValue)
};
serviceEndpoint.Behaviors.Add(endpointBehavior);

serverHost.Open();
BasicHttpRelayBinding basicHttpRelayBinding = new BasicHttpRelayBinding();
basicHttpRelayBinding.UseDefaultWebProxy = false;
var cf = new ChannelFactory<T>(basicHttpRelayBinding,
           new EndpointAddress(ServiceBusEnvironment.CreateServiceUri(
               "https", "xxxxxxxx", "abc")));
IEndpointBehavior endpointBehavior = new TransportClientEndpointBehavior
{
    TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(keyName, 
        keyValue)
};
cf.Endpoint.Behaviors.Add(endpointBehavior);
var ch = cf.CreateChannel();
var response = ch.Call(parameter1, parameter2);
以下是WCF客户端代码:

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Https;
var serviceAddress = ServiceBusEnvironment.CreateServiceUri("https", 
    "xxxxxxxx.servicebus.windows.net", "abc");

BasicHttpRelayBinding basicHttpRelayBinding = new BasicHttpRelayBinding();
basicHttpRelayBinding.UseDefaultWebProxy = false;

ServiceHost serverHost = new ServiceHost(typeof(MyService));
ServiceEndpoint serviceEndpoint = serverHost.AddServiceEndpoint(typeof(IMyService), 
    basicHttpRelayBinding, serviceAddress);
IEndpointBehavior endpointBehavior = new TransportClientEndpointBehavior
{
    TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(keyName, 
        keyValue)
};
serviceEndpoint.Behaviors.Add(endpointBehavior);

serverHost.Open();
BasicHttpRelayBinding basicHttpRelayBinding = new BasicHttpRelayBinding();
basicHttpRelayBinding.UseDefaultWebProxy = false;
var cf = new ChannelFactory<T>(basicHttpRelayBinding,
           new EndpointAddress(ServiceBusEnvironment.CreateServiceUri(
               "https", "xxxxxxxx", "abc")));
IEndpointBehavior endpointBehavior = new TransportClientEndpointBehavior
{
    TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(keyName, 
        keyValue)
};
cf.Endpoint.Behaviors.Add(endpointBehavior);
var ch = cf.CreateChannel();
var response = ch.Call(parameter1, parameter2);
BasicHttpRelayBinding BasicHttpRelayBinding=new BasicHttpRelayBinding();
basicHttpRelayBinding.UseDefaultWebProxy=false;
var cf=新通道工厂(基本通道延迟绑定,
新端点地址(ServiceBusEnvironment.CreateServiceUri)(
“https”、“xxxxxxxx”、“abc”);
IEndpointBehavior endpointBehavior=新的TransportClientEndpointBehavior
{
TokenProvider=TokenProvider.CreateSharedAccessSignatureTokenProvider(keyName,
键值)
};
cf.Endpoint.Behaviors.Add(endpointBehavior);
var ch=cf.CreateChannel();
var响应=呼叫(参数1,参数2);
我的问题是:

  • 有人遇到过这样的问题吗

  • 鉴于我无法直接控制客户防火墙后面的网络配置。诊断此类问题的最佳方法是什么?我可以向客户寻求帮助,但我需要告诉他们要寻找什么


  • 你知道这件事的真相吗?