Сокет / Тайм-аут в Azure WebRole для синхронной связи с хостом WCF в WorkerRole - PullRequest
2 голосов
/ 08 февраля 2010

Я пытаюсь заставить это работать на внутреннем TCP-соединении. Код работает безупречно в разработке, но при развертывании в Azure я получаю ...

a CommunicationException «Соединение с сокетом было прервано», пытающееся соединиться с «net.tcp: // ......» с временным кодом около 60 секунд, которое он ждал.

Сторона хоста wcf:

_WCFHost.AddServiceEndpoint(typeof(IServiceWCFContract), new NetTcpBinding(),_ServiceUrl);
_WCFHost.Open();

wcf на стороне клиента:

var channelfactory = new ChannelFactory<IServiceWCFContract>(new NetTcpBinding(), service.Url);            
channelfactory.Open(new TimeSpan(0,0,20)); //20 sec timeout
var resp = channel.GetValues();

Я уверен, что получаю правильный URL-адрес из RoleEnvironment.Roles ["WcfWorkerRole"]. Экземпляры

Я убедился, что enableNativeCodeExecution = "true" установлено в .csdef в обеих ролях.

Я тоже пробовал базовое связывание http, но Azure не нравится, когда рабочие роли имеют пространства http: names.

1 Ответ

0 голосов
/ 08 февраля 2010

на форуме Windows Azure есть много сообщений , предполагающих, что tcp привязка в настоящее время не поддерживается Я бы попробовал изменить конечную точку на wsHttp и проверить, работает ли она.

...