2
msdn 샘플 코드 (http://code.msdn.microsoft.com/windowsazure/Relayed-Messaging-Bindings-ca039161)를 시도했으며 자체 테스트 응용 프로그램에서 발생한 동일한 문제가 있습니다. 릴레이 모드에서 잘 작동하는 예제가 있지만 하이브리드로 전환하자마자 클라이언트가 시간 초과 예외로 서버에 연결하지 못합니다. 나는 타임 아웃을 올렸고 추적을 켜 놓았지만 모든 추적 프로그램은 많은 경고입니다.푸른 메시지 버스에서 TCP 릴레이 바인딩을 사용하는 하이브리드 ConnectionMode를 사용하는 시간 초과
Failed to open Microsoft.ServiceBus.Channels.ClientFramingDuplexSessionChannel
Failed to open Microsoft.ServiceBus.SocketConnectionChannelFactory`1+DuplexSessionChannel[System.ServiceModel.Channels.IDuplexSessionChannel]
나는 설정을 성공하지 TCP, HTTP 및 자동 검색 사이에 설정 시스템 연결 모드 환경을 시도했습니다. 서버에 대한
코드 : 클라이언트에 대한
ServiceHost sh = new ServiceHost(typeof(Service1));
var uri = ServiceBusEnvironment.CreateServiceUri("sb", "<serverNamespace>", "testing");
var binding = new NetTcpRelayBinding();
binding.ConnectionMode = TcpRelayConnectionMode.Hybrid;
binding.Security.Mode = EndToEndSecurityMode.None;
binding.OpenTimeout = new TimeSpan(0,0,10,0);
binding.ReceiveTimeout = new TimeSpan(0, 0, 10, 0);
binding.SendTimeout = new TimeSpan(0, 0, 10, 0);
sh.AddServiceEndpoint(
typeof(IService1), new NetTcpRelayBinding(), uri
)
.Behaviors.Add(new TransportClientEndpointBehavior
{
TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider("<keyName>", "<sharedaccesskey>")
});
sh.Open();
Console.WriteLine("Press ENTER to close");
Console.ReadLine();
sh.Close();
코드 : 읽기
var binding = new NetTcpRelayBinding {ConnectionMode = TcpRelayConnectionMode.Hybrid};
binding.Security.Mode = EndToEndSecurityMode.None;
binding.OpenTimeout = new TimeSpan(0, 0, 10, 0);
binding.ReceiveTimeout = new TimeSpan(0, 0, 10, 0);
binding.SendTimeout = new TimeSpan(0, 0, 10, 0);
binding.CloseTimeout = new TimeSpan(0, 0, 10, 0);
var cf = new ChannelFactory<IService1>(
binding,
new EndpointAddress(
ServiceBusEnvironment.CreateServiceUri("sb", "<serviceNamespace>", "testing")
));
cf.Endpoint.Behaviors.Add(new TransportClientEndpointBehavior
{
TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider("<keyName>", "<sharedAccessKey>")
});
var ch = cf.CreateChannel();
((ICommunicationObject)ch).Open();
Console.WriteLine(ch.GetData(5));
Console.ReadLine();
감사합니다,
로빈
안녕하세요. 이것은 매우 오래된 게시물이지만 해결책을 찾았습니까? 예제를 실행하는 동안 똑같은 문제가 발생합니다. –