Я пытаюсь заставить это работать на внутреннем 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.