web-dev-qa-db-fra.com

"Une opération sur un socket n'a pas pu être effectuée car le système manquait de suffisamment d'espace tampon ou parce qu'une file d'attente était pleine"

J'ai écrit une application de multidiffusion IP en C #. Cela compile bien, mais au moment de l'exécution, cette ligne:

sock.SetSocketOption(SocketOptionLevel.IP,
                     SocketOptionName.AddMembership,
                     new MulticastOption(IPAddress.Parse("224.100.0.1")));

lève une exception de socket non gérée:

Une opération sur un socket n'a pas pu être effectuée car le système manquait de suffisamment d'espace tampon ou parce qu'une file d'attente était pleine

J'ai cherché l'erreur dans Google et des personnes ont suggéré de supprimer le commutateur de 3 Go (mon système d'exploitation est Windows 7), ce qui a peut-être été activé. Je l'ai fait, mais j'ai toujours la même erreur. Quel pourrait être le problème?

19
TSiri

Cela semble se produire lorsque vous manquez de ressources (sockets?) Ou de mémoire . À l'invite de commande, exécutez: Netstat -ab

Je ne suis pas sûr de savoir quelle est la limite de prises. Je lutte actuellement contre un problème comme celui-ci.

Remarques sur les limites de socket: http://support.Microsoft.com/kb/196271

8
nathand

Cela pourrait être l'épuisement du port. Lorsque les applications établissent trop de connexions sortantes en peu de temps ou ne disposent pas de connexions sortantes correctement, vous n’avez plus de ports.

Ici est le lien vers une explication assez longue et un moyen de diagnostiquer le problème

7
Michael

Vous pouvez rencontrer ce message d'erreur si les limites de ressources sont dépassées. Un System.Net.Sockets.Socket implémente IDisposable. Disposez-vous de vos prises une fois que vous avez terminé?

Les laisser pour le ramasse-miettes est un excellent moyen de perdre des ressources.

4
ta.speot.is

J'ai la même erreur, mais uniquement sous Windows 7. Si je lance la même application de multidiffusion sous Vista, cela fonctionne. Il ouvre une boîte de dialogue système pour débloquer le comportement de l'application, mais il s'exécute. C’est probablement une modification des autorisations de mise en réseau dans win7. Je cherche toujours une solution. Si quelqu'un d'autre en trouve un, postez-le.

3
dviljoen

J'ai eu la même erreur sur Windows Server 2008. Dans mon cas, après le redémarrage du serveur (avec 2 ans d'activité), le problème était résolu.

1
Milad AM

J'ai eu le même problème (erreur a.k.a 10055) lors de la tentative de connexion à une base de données MySQL locale. Je pense que vous devez augmenter le nombre de ports dynamiques autorisés par le système d'exploitation.

La solution qui a fonctionné pour moi a été mentionnée ici .__ Je pense que cela peut également vous aider, car vous utilisez Windows Bonne chance!

0

Vous avez cette erreur lorsque vous contactez un fournisseur de messagerie externe en Suède appelé Loopia sous Windows Server 2012 R2 Datacenter x64. 

Le serveur n'avait pas été redémarré depuis presque un an. Après le redémarrage, tout a fonctionné. 

 enter image description here

Une opération sur un socket n'a pas pu être effectuée car le système manque d’espace tampon ou parce qu’une file d’attente était pleine 194.9.94.72:993 

Description: une exception non gérée s'est produite lors de l'exécution de la demande Web en cours. S'il vous plaît examiner la pile trace pour plus d'informations sur l'erreur et son origine. le code. 

Détails des exceptions: System.Net.Sockets.SocketException: An l'opération sur une prise n'a pas pu être effectuée car le système manquait espace de mémoire tampon suffisant ou parce qu'une file d'attente était pleine 194.9.94.72:993

0
Ogglas

voir - http://support.Microsoft.com/kb/2553549 et https://support.Microsoft.com/en-us/kb/929851 (vous déterminez le nombre de ports de sortie dynamiques que vous vouloir). En même temps que ce deuxième article, définissez TcpTimedWaitDelay sur dword, valeur décimale de 30. Ainsi, lorsque les sockets sont publiés sur le système, la suppression est plus rapide .

0
AnthonyG