2010-04-13 3 views
0

J'ai développé une application qui fonctionne sur un appareil avec Wince 5.0. Je fais des appels de service Web en utilisant WLAN. L'application fonctionne correctement si le serveur d'applications est avec le réseau local. Dans l'autre cas, il déclenche une exception uniquement pour la première fois lorsque l'application tente de communiquer avec le serveur d'applications. Si l'application est lancée pour la deuxième fois, elle ne déclenche aucune exception.Premier appel de service Web via WLAN soulève une exception dans Wince 5.0

La trace de la pile:

mardi, 13 Avril 2010 - 10:03:04 AM: Impossible de se connecter au serveur distant à System.Net.HttpWebRequest.finishGetResponse() à System.Net .HttpWebRequest.GetResponse() à System.Web.Services.Protocols.WebClientProtocol.GetWebResponse (requête WebRequest) à System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse (requête WebRequest) à System.Web.Services.Protocols. SoapHttpClientProtocol.doInvoke (String nomMéthode, Object [] paramètres, WebClientAsyncResult asyncResult) at Aarya.Service.MIDServicePro xy.ManagementService.MIDAuthenticateLoginandRole (String sUsername, String sPassword) à Aarya.Modules.MID.ProxyWrapper.ManagementServiceWrapper.MIDAuthenticateLoginandRole (String sUsername, String sPassword) à Aarya.MID.AuthenticateManager.Logon (String LoginName, mot de passe String) à Aarya.MID.Shell.PerformAsyncLogin()


une tentative de connexion a échoué car le parti connecté n'a pas répondu correctement après une période de temps, ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu à System.Net .Sockets.Socket.ConnectNoCheck (EndPoint remoteEP) à System.Net.Sockets.Socket.Connect (EndPoint remoteEP) à System.Net.Connection.doConnect (IPEndPoint ep) à System.Net.Connection.connect (objet ignoré) à System.Threading.ThreadPool.WorkItem.doWork (Object o) à System.Threading.Timer.ring()

Répondre

0

Je suppose que la première fois que vous l'avez lancé, vous n'avez pas de connexion réseau. Votre appel de service Web appelle ensuite le gestionnaire de connexions, qui met ensuite la radio sous tension, contacte le serveur DHCP, obtient une adresse, puis crée la connexion réseau.

Tout ce processus prend probablement trop de temps et votre temps d'application est écoulé. Une fois que vous avez effectué le premier appel, Connection Manager maintient cette connexion ouverte pendant un certain temps et votre deuxième exécution utilise cette connexion existante, elle réussit donc.

Votre application doit gérer les délais d'attente de toute façon (que se passe-t-il si le réseau est hors de portée ou inaccessible), de sorte que la gestion de la situation appropriée doit en tenir compte de toute façon.

Questions connexes