Parfois, j'obtiens l'erreur suivante pendant que je faisais HttpWebRequest à un WebService. J'ai également copié mon code ci-dessous.
System.Net.WebException: impossible de se connecter au serveur distant ---> System.Net.Sockets.SocketException: aucune connexion n'a pu être établie car la machine cible l'a activement refusée 127.0.0.1:80 sur System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress) sur System.Net.Sockets.Socket.InternalConnect (EndPoint remoteEP) sur System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket & socket, IPAddress & address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception & exception) --- Fin de la trace de la pile des exceptions internes --- sur System.Net.HttpWebRequest.GetRequestStream ()
ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.PreAuthenticate = true;
request.Credentials = networkCredential(sla);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
request.Timeout = v_Timeout * 1000;
if (url.IndexOf("asmx") > 0 && parStartIndex > 0)
{
AppHelper.Logger.Append("#############" + sla.ServiceName);
using (StreamWriter reqWriter = new StreamWriter(request.GetRequestStream()))
{
while (true)
{
int index01 = parList.Length;
int index02 = parList.IndexOf("=");
if (parList.IndexOf("&") > 0)
index01 = parList.IndexOf("&");
string parName = parList.Substring(0, index02);
string parValue = parList.Substring(index02 + 1, index01 - index02 - 1);
reqWriter.Write("{0}={1}", HttpUtility.UrlEncode(parName), HttpUtility.UrlEncode(parValue));
if (index01 == parList.Length)
break;
reqWriter.Write("&");
parList = parList.Substring(index01 + 1);
}
}
}
else
{
request.ContentLength = 0;
}
response = (HttpWebResponse)request.GetResponse();
Réponses:
Si cela se produit toujours, cela signifie littéralement que la machine existe mais qu'elle n'a aucun service d'écoute sur le port spécifié, ou qu'un pare-feu vous arrête.
Si cela se produit occasionnellement - vous avez utilisé le mot «parfois» - et que la nouvelle tentative réussit, c'est probablement parce que le serveur a un «backlog» complet.
Quand tu attends d'être
accept
édité sur une prise d'écoute, vous êtes placé dans un backlog. Ce backlog est fini et assez court - des valeurs de 1, 2 ou 3 ne sont pas inhabituelles - et donc le système d'exploitation pourrait ne pas être en mesure de mettre en file d'attente votre demande pour que «l'acceptation» soit consommée.Le backlog est un paramètre de la
listen
fonction - tous les langages et plates-formes ont fondamentalement la même API à cet égard, même le C # . Ce paramètre est souvent configurable si vous contrôlez le serveur et est probablement lu à partir de certains fichiers de paramètres ou du registre. Découvrez comment configurer votre serveur.Si vous avez écrit le serveur, vous pourriez avoir un traitement lourd dans l'acceptation de votre socket, et cela peut être mieux déplacé vers un thread de travail séparé afin que votre acceptation soit toujours prête à recevoir des connexions. Il existe différents choix d'architecture que vous pouvez explorer pour limiter la mise en file d'attente des clients et les traiter séquentiellement.
Peu importe si vous pouvez augmenter le backlog du serveur, vous avez besoin d'une logique de nouvelle tentative dans votre code client pour faire face à ce problème - car même avec un backlog long, le serveur peut recevoir de nombreuses autres demandes sur ce port à ce moment-là.
Il y a une possibilité rare où un routeur NAT donnerait cette erreur si ses ports pour les mappages étaient épuisés. Je pense que nous pouvons ignorer cette possibilité comme trop longue, car le routeur dispose de 64K connexions simultanées à la même adresse / port de destination avant l'épuisement.
la source
La raison la plus probable est un pare-feu.
Cet article contient un ensemble de raisons qui peuvent vous être utiles.
D'après l'article, les raisons possibles pourraient être:
la source
Cela m'est arrivé aussi .. Parfois, lorsque j'ouvre mon projet, cette erreur est apparue, ce qui était frustrant. Le problème était que parfois le numéro de port du service Web changeait de façon inattendue.
Ce problème se produit généralement lorsque vous disposez de plusieurs copies du projet
Mon projet appelait le service Web avec un numéro de port spécifique que j'ai attribué dans le fichier Web.Config de mon fichier de projet principal. Comme le numéro de port a changé de façon inattendue, le navigateur n'a pas pu trouver le service Web et générer cette erreur.
J'ai résolu ce problème en suivant les étapes ci-dessous: (Visual Studio 2010)
J'espère que cela résoudra le problème.
À votre santé :)
la source
LocalHost:2532
pour moi. Il s'avère qu'il a été défini de cette façon par le propriétaire précédent dans la zone que vous avez spécifiée. Maintenant que ce mystère est clair, il rend certaines autres choses moins mystérieuses. Merci!Je pense que vous devez vérifier vos paramètres de proxy dans les "options Internet". Si vous utilisez des applications proxy / 'masquer ip', ce problème peut se produire.
la source
J'ai eu le même problème. Le problème est que je n'ai pas démarré le serveur au sélénium. J'ai téléchargé le serveur sélénium et je l'ai démarré. Après avoir démarré le serveur de sélénium, le problème a disparu et tout a bien fonctionné.
Reportez-vous à ceci: http://coding-issues.blogspot.in/2012/11/no-connection-could-be-made-because.html
la source
Accédez à votre projet WCF - propriétés -> -> débogueurs -> décochez la case
la source
J'ai eu la même erreur avec mon service WCF en utilisant la liaison Net TCP, mais j'ai résolu après avoir démarré les services ci-dessous dans mon cas.
Net.Pipe.Listener.Adapter
Net.TCP.Listener.Adapter
Service de partage de port Net.Tcp
la source
C'est vraiment spécifique, mais si vous recevez cette erreur après avoir essayé de vous connecter à une base de données à l'aide de mongo, ce qui a fonctionné pour moi était d'exécuter mongod.exe avant d'exécuter mongo.exe, puis la connexion a bien fonctionné. J'espère que cela aide quelqu'un.
la source
J'ai rencontré la même erreur car lorsque votre serveur et votre client s'exécutent sur la même machine, le client a besoin d'une adresse IP locale du serveur et non d'une adresse IP publique pour communiquer avec le serveur. dans le programme client pour se connecter au serveur L'adresse IP locale peut être trouvée en utilisant cette méthode.
la source
J'ai eu cette erreur dans une application qui utilise AppFabric. L'indice obtenait une
DataCacheException
trace de pile. Pour voir si c'est le problème pour vous, exécutez la commande PowerShell suivante:Si l'un de ces deux services est arrêté, vous obtiendrez cette erreur.
la source
Eh bien, j'ai reçu cette erreur aujourd'hui sur Windows 8 64 bits à l'improviste, pour la première fois, et il s'avère que mon my.ini a été réinitialisé, et le fichier bin / mysqld a été supprimé, entre autres éléments dans le
"Program Files/MySQL/MySQL Server 5.6"
dossier.Pour y remédier, j'ai dû exécuter à nouveau le programme d'installation MySQL, en installant uniquement le serveur et copier une version récente du fichier my.ini
"ProgramData/MySQL/MySQL Server 5.6"
, nomméemy_2014-03-28T15-51-20.ini
dans mon cas (je ne sais pas comment ni pourquoi cela a été copié là-bas si récemment) retour dans"Program Files/MySQL/MySQL Server 5.6"
.Le seul changement au système depuis que MySQL a fonctionné a été l'installation de Traktor 2 de Native Instruments et d'une carte son Traktor Audio 2, ce qui n'aurait vraiment pas dû causer ce problème, et personne d'autre n'a utilisé le système à part moi. Si quelqu'un a un indice, ce serait gentil de votre part de commenter pour empêcher cela pour moi et quiconque a rencontré cela.
la source
Pour référence de service dans une solution.
Redémarrez votre poste de travail
Reconstruisez votre solution
À ce stade, j'ai reçu un message (Windows 7) pour autoriser l'accès au système. Ensuite, la référence de service a été correctement mise à jour sans erreur.
la source
Je voudrais partager cette réponse que j'ai trouvée car la cause du problème n'était pas le pare-feu ou le processus n'écoutait pas correctement, c'était l'exemple de code fourni par Microsoft que j'ai utilisé.
https://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.110%29.aspx
J'ai implémenté cette fonction presque exactement comme écrit, mais ce qui s'est passé, c'est que j'ai eu cette erreur:
2016-01-05 12: 00: 48,075 [10] ERREUR - L'erreur est: System.Net.Sockets.SocketException (0x80004005): Aucune connexion n'a pu être établie car la machine cible l'a activement refusée [fe80 :: caa: 745: a1da: e6f1% 11]: 4080
Ce code dirait que le socket est connecté, mais pas sous la bonne adresse IP réellement nécessaire pour une communication correcte. (Fourni par Microsoft)
J'ai réécrit le code pour utiliser simplement la première adresse IP valide qu'il trouve. Je ne m'inquiète que d'utiliser IPV4, mais cela fonctionne avec localhost, 127.0.0.1, et l'adresse IP de votre carte réseau, où l'exemple fourni par Microsoft a échoué!
la source
Dans mon cas, certains domaines ont fonctionné, d'autres non. L'ajout d'une référence à l'URL du proxy de mon organisation dans mon web.config a résolu le problème.
la source
J'ai reçu cette erreur de référencer des services situés sur un WCFHost de mon niveau Web. Ce qui a fonctionné pour moi peut ne pas s'appliquer à tout le monde, mais je laisse cette réponse à ceux qui le peuvent. Le numéro de port pour mon WCFHost a été mis à jour au hasard par IIS, j'ai simplement dû mettre à jour les routes de fin vers les références svc dans ma configuration Web. Problème résolu.
la source
Dans mon scénario, j'ai deux applications:
la source
Encore une possibilité -
Assurez-vous que vous essayez d'ouvrir la même adresse IP que celle où vous écoutez. Mon application serveur écoutait l'adresse IP de la machine hôte à l'aide d'IPv6, mais le client tentait de se connecter sur l'adresse IPv4 de la machine hôte.
la source
Dans mon cas, cela a été causé par un déploiement défectueux où aucun paramètre dans mon web.config n'a été effectué.
Un collègue a expliqué que l'adresse IP dans le message d'erreur représente l'hôte local.
Lorsque j'ai corrigé le web.config, j'utilisais alors l'URL correcte pour passer les appels du serveur et cela a fonctionné.
J'ai pensé que je publierais ceci au cas où cela pourrait aider quelqu'un.
la source
Utilisation de WampServer 64bit sur Windows 7 Home Premium 64bit J'ai rencontré ce problème exact. Après des heures et des heures d'expérimentation, il est devenu évident que tout ce qui était nécessaire était dans my.ini pour commenter une ligne. Ensuite, cela a bien fonctionné.
commenté 1 socket de ligne = mysql
Si vous placez vos anciens / données / fichiers à l'emplacement approprié, WampServer les acceptera tous à l'exception du dossier / mysql / qu'il écrase. J'ai donc simplement importé une sauvegarde des données / mysql / user de mon environnement de développement précédent et exécuté FLUSH PRIVILEGES dans une fenêtre SQL phpMyAdmin. Fonctionne très bien. Quelque chose ne va pas parce que les choses ne devraient pas être aussi faciles.
la source
J'ai eu ce problème souvent. J'ai trouvé que le
SQL Server Agent
service ne fonctionnait pas. Une fois que j'ai démarré le service manuellement, il a été corrigé. Vérifiez si le service fonctionne ou non:services.msc
et appuyez sur EntréeSQL Server Agent
( Nom de l'instance )Si
SQL Server Agent
n'est pas en cours d'exécution, double-cliquez sur le service pour ouvrir la fenêtre des propriétés. Cliquez ensuite sur leStart
bouton. J'espère que cela aidera quelqu'un.la source
J'ai rencontré cette erreur et j'ai mis du temps à la résoudre. Dans mon cas, j'avais https et net.tcp configurés en tant que liaisons IIS sur le même port. Évidemment, vous ne pouvez pas avoir deux choses sur le même port. J'ai utilisé la commande netstat -ap tcp pour vérifier s'il y a quelque chose à écouter sur ce port. Il n'y avait personne qui écoutait. La suppression de la liaison inutile (https dans mon cas) a résolu mon problème.
la source
C'était un problème stupide de mon côté, j'avais ajouté un proxy par défaut à mon web.config afin d'intercepter le trafic dans Fiddler, puis j'ai oublié de le supprimer!
la source
Il existe un service appelé «SQL Server Browser» qui fournit des informations de connexion SQL Server aux clients.
Dans mon cas, aucune des solutions existantes n'a fonctionné car ce service n'était pas en cours d'exécution. Je l'ai repris et tout s'est remis à fonctionner parfaitement.
la source
J'étais confronté à ce problème aujourd'hui. La mienne était l'API Core d'Asp.Net et elle l'utilise
Postgresql
comme base de données. Nous avons configuré cette base de données en tant que conteneur Docker. La première étape que j'ai faite a donc été de vérifier si je suis en mesure d'accéder à la base de données ou non. Pour ce faire, j'ai cherchéPgAdmin
au début car j'ai configuré la même chose. En cliquant sur l'application résultante, vous serez redirigé vers le http://127.0.0.1:23722/browser/ . Là, vous pouvez essayer d'accéder à votre base de données dans le menu de gauche. Pour moi, j'obtenais une erreur comme dans l'image ci-dessous.Saisissez le mot de passe et essayez si vous pouvez y accéder ou non. Pour moi, cela ne fonctionnait pas. Comme il s'agit d'un conteneur Docker, j'ai décidé de redémarrer mon bureau Docker, pour cela, faites un clic droit sur l'icône Docker dans la barre des tâches et cliquez sur redémarrer.
Une fois après le redémarrage du Docker, j'ai pu me connecter et voir la base de données et l'erreur a également disparu lorsque je redémarre l'application dans Visual Studio .
J'espère que ça aide.
la source
cela peut être dû à des problèmes d'autorisation; ce fut le cas pour moi. Si vous avez par exemple:
[Authorize("WriteAccess")]
ou[Authorize("ReadAccess")]
au sommet des fonctions de votre contrôleur, essayez de les commenter.la source
Pour moi, je voulais démarrer le mongo en shell (sans rapport avec le contexte exact de la question, mais ayant le même message d'erreur avant même de démarrer le mongo en shell)
Le processus 'MongoDB Service' n'était pas en cours d'exécution dans les services
Démarrez cmd en tant qu'administrateur et tapez,
Juste pour voir que MongoDB est en place et qu'il suffit de taper mongo, en cmd il donnera les détails de la version de Mongo et l'URL de connexion de Mongo
la source
Je viens de faire face à ça en ce moment ...
Ici, de mon côté, j'ai 2 solutions Visual Studio séparées (.sln) ... ouvertes chacune dans leur propre instance Visual Studio.
La solution 2 appelle le code de la solution 1. Le problème était lié au port attribué à la solution 1. J'ai dû changer le port de la solution 1 en un autre, puis la solution 2 a recommencé à fonctionner. Assurez-vous donc de vérifier le port attribué à votre projet.
la source