web-dev-qa-db-fra.com

WCF: System.Net.SocketException - Une seule utilisation de chaque adresse de socket (protocole / adresse réseau / port) est normalement autorisée

J'ai un service WCF et une application Web. L'application Web effectue des appels à ce service WCF de manière continue, comme une interrogation. Dans notre environnement de production, je reçois très rarement cette erreur. Depuis, il s'agit d'une activité interne que les utilisateurs ne savaient pas quand cette erreur est levée.

Impossible de se connecter à http: //localhost/QAService/Service.svc . TCP code d'erreur 10048: une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port) est normalement autorisée 127.0.0.1:80. ---> System.Net.WebException: impossible de se connecter au serveur distant ---> System.Net.Sockets.SocketException: une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port) est normalement autorisée 127.0.0.1:80

J'ai du mal à reproduire ce comportement dans notre environnement dev/qa. Je me suis assuré que la connexion client est fermée dans un bloc try..catch..finally. Vous ne comprenez toujours pas ce qui cause ce problème ... quelqu'un en est-il conscient?

Remarque : J'ai regardé cela question SO , mais il ne semble pas répondre à mon problème, il n'est donc pas répété des questions.

44
asyncwait

HttpClient, bien qu'il implémente IDisposable est un objet partagé, vous devez réduire le nombre d'instances autant que possible. Vous pouvez vous en tirer avec une seule instance pour toute la durée de vie de votre application plutôt qu'une pour chaque demande.

J'ai beaucoup écrit à ce sujet sur http://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/

8
stimms