2013-01-05 2 views
0

J'écris une solution WCF qui inclut une application mobile pour Windows RT (application Windows Store).Application client WCF de débogage à distance - Impossible de se connecter à l'hôte

L'application mobile fonctionne correctement lorsque je l'exécute à partir de la machine dev, avec l'hôte WCF fonctionnant sur la même machine. J'ai essayé de le tester sur mon MS Surface RT via le débogage à distance. Cela commence à fonctionner. L'application ne démarre sur la surface, mais dès que je fais quelque chose qui exige d'accéder à l'hôte WCF (qui est en cours d'exécution sur la machine dev), je reçois l'exception suivante:

System.ServiceModel.EndpointNotFoundException was unhandled 
Message: An unhandled exception of type 'System.ServiceModel.EndpointNotFoundException' occurred in mscorlib.dll 
Additional information: There was no endpoint listening at http://192.168.0.101:8000/Service1 that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. 

Il n'y a pas intérieure exception. 192.168.0.101 est l'adresse IP statique de la machine dev.

Le pare-feu Windows est désactivé sur la machine de développement, et il n'y a pas d'autres pare-feu. Je suis capable de ping cette même adresse IP à partir de la surface, donc je sais qu'il peut voir la machine dev. Encore une fois, cela fonctionne très bien lorsque l'application mobile est en cours d'exécution sur la machine dev avec l'hôte WCF. Donc, je ne suis pas sûr de ce que le problème est.

Voici le code où le point final est créé dans l'hôte:

ServiceHost hostA = null; 

    try 
    { 
     hostA = new ServiceHost(typeof(Service1), new Uri("http://192.168.0.101:8000")); 
     hostA.AddServiceEndpoint(typeof(IService1), new BasicHttpBinding(), "Service1"); 

     hostA.Open(); 

     Console.WriteLine(); 
     Console.WriteLine("Host started. Press Enter to terminate host."); 
     Console.ReadLine(); 

    } 
    finally 
    { 
     if (hostA.State == CommunicationState.Faulted) 
      hostA.Abort(); 
     else 
      hostA.Close(); 
    } 

Et dans le client:

var myBinding = new BasicHttpBinding(); 
    var myEndpoint = new EndpointAddress("http://192.168.0.101:8000/Service1"); 
    var myChannelFactory = new ChannelFactory<ToOrson.IService1>(myBinding, myEndpoint); 

    MyService = myChannelFactory.CreateChannel(); 

Qu'est-ce que le problème pourrait être?

Répondre

0

Avez-vous activé la fonctionnalité Private Networks (Client & Server) dans le manifeste de l'application?

<Capabilities> 
    <Capability Name="privateNetworkClientServer" /> 
</Capabilities> 
+0

Merci. C'est probablement ça. Je n'avais pas cela activé. Je suis hors de la ville cette semaine et je n'ai pas de réseau privé pour le tester, mais je le testerai le week-end prochain et je vous ferai savoir si cela fonctionne. – JoeMjr2

+0

Ok, j'ai compris comment créer un réseau wifi privé hébergé sur mon ordinateur portable. L'ajout de la capacité privateNetworkClientServer a fonctionné! Merci! – JoeMjr2

Questions connexes