2010-02-08 16 views
2

J'essaie de faire en sorte que cela fonctionne sur une connexion tcp interne. Le code fonctionne parfaitement en développement, mais lorsqu'il est déployé sur Azure, je reçois ...Socket/Timeout dans Azure WebRole pour une communication synchrone avec WCF Host dans WorkerRole

une CommunicationException "La connexion socket a été annulée" en essayant de se connecter à "net.tcp: // ......" avec un temps code environ 60 secondes, il a attendu.

côté hôte WCF:

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

WCF côté client.

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

Je suis sûr que je suis preneuse l'URL correcte des RoleEnvironment.Roles [ "WcfWorkerRole"] Les instances

J'ai vérifié que enableNativeCodeExecution = "true" est défini dans le fichier .csdef dans les deux rôles. J'ai également essayé la liaison http de base, mais azure n'aime pas les rôles de travail ayant des espaces http: names.

Répondre

0

sur le forum de Windows Azur il y a beaucoup de posts suggérant qu'une liaison tcp n'est actuellement pas supportée. Je voudrais essayer de changer le point de terminaison à wsHttp et vérifier si cela fonctionne.