[英]Microsoft ServiceBus Receiving BrokeredMessages Out of Order
[英]Microsoft.ServiceBus.InvalidRequestException: The connection was failed. Cache refresh timed out
Microsoft.ServiceBus.InvalidRequestException:连接失败。 高速缓存刷新超时。 服务器堆栈跟踪:在Microsoft.ServiceBus.Channels.BufferedConnectionInitiator.Connect(Uri uri,TimeSpan超时)在Microsoft.ServiceBus.ConnectivityModeConnectionInitiator.Connect(Uri uri,TimeSpan超时)在Microsoft.ServiceBus.RelayedSocketInitiator.Connect(Uri uri,TimeSpan超时) )的Microsoft.ServiceBus.Channels.ConnectionPoolHelper。EstablishmentConnection(TimeSpan超时)处的System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan超时)的System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan超时)的System.ServiceModel.Channels。 System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan超时)在System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan超时)处的CommunicationObject.Open(TimeSpan超时)在[0]处引发了异常:在System.Runtime.Remoting.Proxies处Syst处的System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)的.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg) em.ServiceModel.ICommunicationObject.Open()
使用NetTcpRelayBinding打开连接时
try
{
NetTcpRelayBinding netTcpRelay = new NetTcpRelayBinding();
if (ApplicationServer.Common.Utilities.ServicesConfigurationManager.ClientMaxConnections > 0)
{
netTcpRelay.MaxConnections = ApplicationServer.Common.Utilities.ServicesConfigurationManager.ClientMaxConnections;
}
netTcpRelay.MaxReceivedMessageSize = ApplicationServer.Common.Utilities.ServicesConfigurationManager.ClientMaxReceivedMessageSize;
if (ApplicationServer.Common.Utilities.ServicesConfigurationManager.ClientSendTimeout > 0)
{
netTcpRelay.SendTimeout = new TimeSpan(0, 0, ApplicationServer.Common.Utilities.ServicesConfigurationManager.ClientSendTimeout);
}
if (ApplicationServer.Common.Utilities.ServicesConfigurationManager.ClientReceiveTimeout > 0)
{
netTcpRelay.ReceiveTimeout = new TimeSpan(0, 0, ApplicationServer.Common.Utilities.ServicesConfigurationManager.ClientReceiveTimeout);
}
channelFactory = new ChannelFactory<TServiceChannel>(
netTcpRelay,
new EndpointAddress(serviceBusUri));
// Set the signature token
policyName = ...
accessKey = ...
channelFactory.Endpoint.Behaviors.Add(new TransportClientEndpointBehavior { TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(policyName, accessKey) });
}
catch (Exception exc)
{
throw new ServiceBusRelayException("\nServiceBusRelayProxyHelper.Initialize (sb://): An error ocurred with ServiceBusUri='" + serviceBusUri + "' - PolicyName='"+ policyName +"'.\nException Message: " + exc.Message, exc);
}
从今天开始,我也遇到了同样的问题。 这不是您的代码的问题,我必须与MSFT支持一起工作才能解决问题。 他们不得不将我的服务总线名称空间移到另一个节点,然后解决了这个问题。 我建议在Azure支持下打开支持通知单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.