2011-09-21 4 views
0

J'écris une application WinCE en C# qui fait un HTTP POST à ​​un serveur APACHE résidant sur mon réseau. En raison de certains problèmes de réseau (je suppose), je reçois l'exception suivante dans le code managéWince Socket exception sur demande HTTP asynchrone

System.Net.Sockets.SocketException occurred 
    Message="A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond" 
    ErrorCode=10060 
    NativeErrorCode=10060 
    StackTrace: 
     at System.Net.Sockets.Socket.ConnectNoCheck(EndPoint remoteEP) 
     at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) 
     at System.Net.Connection.doConnect(IPEndPoint ep) 
     at System.Net.Connection.connect(Object ignored) 
     at System.Threading.ThreadPool.WorkItem.doWork(Object o) 
     at System.Threading.Timer.ring() 

Cette exception est pas toujours jeté, mais quand il est jeté, mon application ne parvient pas à se connecter au serveur AT TOUT. Les tentatives de connexion répétées n'aident pas non plus à se reconnecter. La seule chose qui aide est la fermeture et le redéploiement de l'application.

Je ne peux pas attraper l'exception car son intérieur du code managé. Est-il possible de contourner cela et de fermer toutes les connexions socket à mon serveur et de les réinitialiser? Y a-t-il quelque chose que je fais de mal?

Répondre

2

Le message d'exception semble un peu trompeur (« connexion tentative a échoué parce que le connecté partie ») mais je pense que cela signifie que votre matériel communique avec le serveur, mais le serveur n'accepte pas la connexion sur le TCP niveau.

Un problème auquel je pourrais penser est de "suspendre" les connexions, ce qui oblige le serveur à atteindre le nombre maximal de connexions simultanées et à ne plus en accepter de nouvelles. Bien qu'il ne s'agisse que d'une supposition, vous voudrez peut-être vérifier le journal apache si vous pouvez voir si vous pouvez savoir si le serveur signale quelque chose, et peut-être essayer de redémarrer apache dès que le problème se reproduira. Si cela vous aide, vous devez toujours trouver la cause bien sûr.

+0

Le problème était avec le réseau. Soupir. Merci :) – Rishi