Manchmal erhalte ich die folgende Fehlermeldung, während ich HttpWebRequest für einen WebService ausführte. Ich habe meinen Code auch unten kopiert.
System.Net.WebException: Es kann keine Verbindung zum Remote-Server hergestellt werden ---> System.Net.Sockets.SocketException: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer dies aktiv abgelehnt hat. 127.0.0.1:80 bei System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress) bei System.Net.Sockets.Socket.InternalConnect (EndPoint remoteEP) at System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket & Socket, IPAddress & Adresse, ConnectSocketState-Status, IAsyncResult asyncResult, Int32-Timeout, Ausnahme & Ausnahme) --- Ende der inneren Ausnahmestapelverfolgung --- bei 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();
Antworten:
Wenn dies immer geschieht, bedeutet dies wörtlich, dass der Computer vorhanden ist, aber keine Dienste auf dem angegebenen Port empfangsbereit sind oder dass eine Firewall Sie stoppt.
Wenn es gelegentlich vorkommt - Sie haben das Wort "manchmal" verwendet - und der Wiederholungsversuch erfolgreich ist, liegt dies wahrscheinlich daran, dass der Server über einen vollständigen "Rückstand" verfügt.
Wenn Sie darauf warten,
accept
an einem Listening-Socket bearbeitet zu werden, werden Sie in einen Rückstand versetzt. Dieser Rückstand ist endlich und recht kurz - Werte von 1, 2 oder 3 sind nicht ungewöhnlich - und daher kann das Betriebssystem Ihre Anfrage nach dem "Akzeptieren" möglicherweise nicht in die Warteschlange stellen.Das Backlog ist ein Parameter der
listen
Funktion - alle Sprachen und Plattformen haben in dieser Hinsicht grundsätzlich dieselbe API, auch die C # 1 . Dieser Parameter kann häufig konfiguriert werden, wenn Sie den Server steuern, und wird wahrscheinlich aus einer Einstellungsdatei oder der Registrierung gelesen. Untersuchen Sie, wie Sie Ihren Server konfigurieren.Wenn Sie den Server geschrieben haben, hat das Akzeptieren Ihres Sockets möglicherweise eine starke Verarbeitung, und dies kann besser in einen separaten Worker-Thread verschoben werden, sodass Ihr Akzeptieren immer bereit ist, Verbindungen zu empfangen. Es gibt verschiedene Architekturoptionen, die Sie untersuchen können, um das Einreihen in die Warteschlange und das sequentielle Verarbeiten von Clients zu verringern.
Unabhängig davon, ob Sie das Server-Backlog erhöhen können, benötigen Sie eine Wiederholungslogik in Ihrem Client-Code, um dieses Problem zu lösen. Selbst bei einem langen Backlog erhält der Server zu diesem Zeitpunkt möglicherweise viele andere Anforderungen an diesen Port.
Es gibt eine seltene Möglichkeit, dass ein NAT-Router diesen Fehler ausgibt, wenn seine Ports für Zuordnungen erschöpft sind. Ich denke, wir können diese Möglichkeit als zu langwierig verwerfen, da der Router vor Erschöpfung über 64K gleichzeitige Verbindungen zu derselben Zieladresse / demselben Port verfügt.
quelle
Der wahrscheinlichste Grund ist eine Firewall.
Dieser Artikel enthält eine Reihe von Gründen, die für Sie nützlich sein können.
Mögliche Gründe für den Artikel könnten sein:
quelle
Das ist mir auch passiert. Manchmal, wenn ich mein Projekt öffne, tauchte dieser Fehler auf, der frustrierend war. Das Problem war, dass sich die Portnummer des Webdienstes manchmal unerwartet änderte.
Dieses Problem tritt normalerweise auf, wenn Sie mehr als eine Kopie des Projekts haben
Mein Projekt rief den Webdienst mit einer bestimmten Portnummer auf, die ich in der Datei Web.Config meiner Hauptprojektdatei zugewiesen hatte. Da sich die Portnummer unerwartet änderte, konnte der Browser den Webdienst nicht finden und diesen Fehler auslösen.
Ich habe dieses Problem gelöst, indem ich die folgenden Schritte ausgeführt habe: (Visual Studio 2010)
Ich hoffe das wird das Problem lösen.
Prost :)
quelle
LocalHost:2532
für mich angegeben wurde. Es stellte sich heraus, dass dies vom Vorbesitzer in dem von Ihnen angegebenen Bereich so festgelegt wurde. Jetzt, da dieses Geheimnis klar ist, macht es einige andere Dinge weniger mysteriös. Vielen Dank!Ich denke, Sie müssen Ihre Proxy-Einstellungen in "Internetoptionen" überprüfen. Wenn Sie Proxy- / IP-Anwendungen ausblenden verwenden, kann dieses Problem auftreten.
quelle
Ich hatte das gleiche Problem. Das Problem ist, dass ich den Selenserver nicht gestartet habe. Ich habe den Selenserver heruntergeladen und gestartet. Nach dem Start des Selen-Servers ist das Problem behoben und alles hat einwandfrei funktioniert.
Siehe hierzu: http://coding-issues.blogspot.in/2012/11/no-connection-could-be-made-because.html
quelle
Gehen Sie zu Ihrem WCF-Projekt - Eigenschaften -> -> Debugger -> Deaktivieren Sie das Kontrollkästchen
quelle
Ich hatte den gleichen Fehler mit meinem WCF-Dienst unter Verwendung der Net TCP-Bindung, der jedoch in meinem Fall nach dem Starten der folgenden Dienste behoben wurde.
Net.Pipe.Listener.Adapter
Net.TCP.Listener.Adapter
Net.Tcp Port Sharing Service
quelle
Dies ist wirklich spezifisch, aber wenn Sie diesen Fehler erhalten, nachdem Sie versucht haben, mit mongo eine Verbindung zu einer Datenbank herzustellen, hat mongod.exe vor dem Ausführen von mongo.exe ausgeführt, und dann hat die Verbindung einwandfrei funktioniert. Hoffe das hilft jemandem.
quelle
Ich habe denselben Fehler festgestellt, da der Client, wenn Ihr Server und Ihr Client auf demselben Computer ausgeführt werden, eine lokale IP-Adresse des Servers und keine öffentliche IP-Adresse für die Kommunikation mit dem Server benötigt. Sie benötigen eine öffentliche IP-Adresse nur für den Fall, dass Server und Client auf einem separaten Computer ausgeführt werden. Verwenden Sie daher die lokale IP-Adresse im Client-Programm zur Verbindung mit dem Server Lokale IP-Adresse kann mit dieser Methode gefunden werden.
quelle
Ich habe diesen Fehler in einer Anwendung erhalten, die AppFabric verwendet. Der Hinweis war ein
DataCacheException
in der Stapelspur. Führen Sie den folgenden PowerShell-Befehl aus, um festzustellen, ob dies das Problem für Sie ist:Wenn einer dieser beiden Dienste gestoppt wird, wird dieser Fehler angezeigt.
quelle
Nun, ich habe diesen Fehler heute unter Windows 8 64-Bit aus heiterem Himmel zum ersten Mal erhalten, und es stellte sich heraus, dass meine Datei my.ini zurückgesetzt und die Datei bin / mysqld unter anderem gelöscht wurde im
"Program Files/MySQL/MySQL Server 5.6"
Ordner.Um das Problem zu beheben, musste ich das MySQL-Installationsprogramm erneut ausführen, nur den Server installieren und eine aktuelle Version der my.ini-Datei kopieren
"ProgramData/MySQL/MySQL Server 5.6"
, diemy_2014-03-28T15-51-20.ini
in meinem Fall benannt wurde (ich weiß nicht, wie oder warum diese so kürzlich dort kopiert wurde). zurück in"Program Files/MySQL/MySQL Server 5.6"
.Die einzige Änderung am System seit MySQL war die Installation von Traktor 2 von Native Instruments und einer Soundkarte von Traktor Audio 2, die dieses Problem eigentlich nicht hätte verursachen dürfen, und außer mir hat niemand anderes das System verwendet. Wenn jemand eine Ahnung hat, wäre es nett von Ihnen, einen Kommentar abzugeben, um dies für mich und alle anderen, die darauf gestoßen sind, zu verhindern.
quelle
Als Servicereferenz innerhalb einer Lösung.
Starten Sie Ihre Workstation neu
Erstellen Sie Ihre Lösung neu
Zu diesem Zeitpunkt erhielt ich eine Nachricht (Windows 7), um den Systemzugriff zu ermöglichen. Dann wurde die Dienstreferenz ohne Fehler ordnungsgemäß aktualisiert.
quelle
Ich möchte diese Antwort, die ich gefunden habe, weitergeben, da die Ursache des Problems nicht die Firewall oder der Prozess war, der nicht richtig abhört. Es war das von Microsoft verwendete Codebeispiel, das ich verwendet habe.
https://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.110%29.aspx
Ich habe diese Funktion fast genau wie geschrieben implementiert, aber was passiert ist, ist, dass ich diesen Fehler habe:
2016-01-05 12: 00: 48,075 [10] FEHLER - Der Fehler lautet: System.Net.Sockets.SocketException (0x80004005): Es konnte keine Verbindung hergestellt werden, da der Zielcomputer diese aktiv abgelehnt hat [fe80 :: caa: 745: a1da: e6f1% 11]: 4080
Dieser Code würde sagen, dass der Socket angeschlossen ist, jedoch nicht unter der richtigen IP-Adresse, die für eine ordnungsgemäße Kommunikation tatsächlich benötigt wird. (Bereitgestellt von Microsoft)
Ich habe den Code neu geschrieben, um nur die erste gültige IP zu verwenden, die er findet. Ich bin nur mit IPV4 beschäftigt, das dies verwendet, aber es funktioniert mit localhost, 127.0.0.1, und der tatsächlichen IP-Adresse Ihrer Netzwerkkarte, bei der das von Microsoft bereitgestellte Beispiel fehlgeschlagen ist!
quelle
In meinem Fall funktionierten einige Domains, andere nicht. Das Hinzufügen eines Verweises auf die Proxy-URL meiner Organisation in meiner web.config hat das Problem behoben.
quelle
Ich habe diesen Fehler von Referenzierungsdiensten auf einem WCFHost von meiner Webschicht erhalten. Was für mich funktioniert hat, gilt vielleicht nicht für alle, aber ich überlasse diese Antwort denen, die es mögen. Die Portnummer für meinen WCFHost wurde zufällig von IIS aktualisiert. Ich musste lediglich die Endrouten zu den SVC-Referenzen in meiner Webkonfiguration aktualisieren. Problem gelöst.
quelle
In meinem Szenario habe ich zwei Anwendungen:
quelle
Noch eine Möglichkeit -
Stellen Sie sicher, dass Sie versuchen, dieselbe IP-Adresse zu öffnen, an der Sie gerade zuhören. Meine Server-App hat die IP-Adresse des Host-Computers mithilfe von IPv6 abgehört, aber der Client hat versucht, eine Verbindung über die IPv4-Adresse des Host-Computers herzustellen.
quelle
In meinem Fall wurde dies durch eine fehlerhafte Bereitstellung verursacht, bei der keine Einstellung in meiner web.config vorgenommen wurde.
Ein Kollege erklärte, dass die IP-Adresse in der Fehlermeldung den lokalen Host darstellt.
Als ich die web.config korrigierte, verwendete ich die richtige URL, um die Serveraufrufe zu tätigen, und es funktionierte.
Ich dachte, ich würde dies posten, falls es jemandem helfen könnte.
quelle
Bei Verwendung von WampServer 64bit unter Windows 7 Home Premium 64bit ist genau dieses Problem aufgetreten. Nach stundenlangem Experimentieren stellte sich heraus, dass in my.ini nur eine Zeile auskommentiert werden musste. Dann hat es gut funktioniert.
auskommentiert 1 Zeile Socket = MySQL
Wenn Sie Ihre alten / data / -Dateien an der entsprechenden Stelle ablegen, akzeptiert WampServer alle bis auf den Ordner / mysql /, den es überschreibt. Also habe ich einfach eine Sicherungskopie der / mysql / user-Daten aus meiner vorherigen Entwicklungsumgebung importiert und FLUSH PRIVILEGES in einem phpMyAdmin SQL-Fenster ausgeführt. Funktioniert super. Irgendwas muss falsch sein, weil es nicht so einfach sein sollte.
quelle
Ich hatte dieses Problem oft. Ich habe festgestellt, dass der
SQL Server Agent
Dienst nicht ausgeführt wird. Nachdem ich den Dienst manuell gestartet hatte, wurde er behoben. Überprüfen Sie noch einmal, ob der Dienst ausgeführt wird oder nicht:services.msc
und drücken Sie die EingabetasteSQL Server Agent
( Instanzname )Wenn
SQL Server Agent
es nicht ausgeführt wird, doppelklicken Sie auf den Dienst, um das Eigenschaftenfenster zu öffnen. Klicken Sie dann auf dieStart
Schaltfläche. Hoffe es wird jemandem helfen.quelle
Ich bin auf diesen Fehler gestoßen und habe einige Zeit gebraucht, um ihn zu beheben. In meinem Fall hatte ich https und net.tcp als IIS-Bindungen an demselben Port konfiguriert. Offensichtlich können Sie nicht zwei Dinge am selben Port haben. Ich habe den Befehl netstat -ap tcp verwendet, um zu überprüfen, ob an diesem Port etwas lauscht. Es hörte niemand zu. Das Entfernen unnötiger Bindungen (in meinem Fall https) hat mein Problem behoben.
quelle
Es war ein dummes Problem auf meiner Seite, ich hatte meiner web.config einen Standardproxy hinzugefügt, um den Verkehr in Fiddler abzufangen, und dann vergessen, ihn zu entfernen!
quelle
Es gibt einen Dienst namens "SQL Server Browser", der Clients SQL Server-Verbindungsinformationen bereitstellt.
In meinem Fall funktionierte keine der vorhandenen Lösungen, da dieser Dienst nicht ausgeführt wurde. Ich nahm es wieder auf und alles funktionierte wieder perfekt.
quelle
Ich war heute mit diesem Problem konfrontiert. Meins war Asp.Net Core API und es wird
Postgresql
als Datenbank verwendet. Wir haben diese Datenbank als Docker-Container konfiguriert. Der erste Schritt war also zu überprüfen, ob ich auf die Datenbank zugreifen kann oder nicht. Dazu habe ich zuPgAdmin
Beginn gesucht, da ich das gleiche konfiguriert habe. Wenn Sie auf die resultierende Anwendung klicken, werden Sie zu http://127.0.0.1:23722/browser/ weitergeleitet . Dort können Sie im linken Menü versuchen, auf Ihre Datenbank zuzugreifen. Bei mir wurde ein Fehler wie im folgenden Bild angezeigt.Geben Sie das Passwort ein und versuchen Sie, ob Sie darauf zugreifen können oder nicht. Bei mir hat es nicht funktioniert. Da es sich um einen Docker-Container handelt, habe ich beschlossen, meinen Docker-Desktop neu zu starten. Klicken Sie dazu mit der rechten Maustaste auf das Docker-Symbol in der Taskleiste und klicken Sie auf Neustart.
Einmal nach dem Neustart des Docker konnte ich mich anmelden und die Datenbank anzeigen. Außerdem war der Fehler beim Neustart der Anwendung in Visual Studio behoben .
Ich hoffe es hilft.
quelle
Dies kann an Autorisierungsproblemen liegen. das war bei mir der Fall. Wenn Sie zum Beispiel:
[Authorize("WriteAccess")]
oder[Authorize("ReadAccess")]
oben in Ihren Controller-Funktionen haben, versuchen Sie, diese auskommentieren.quelle
Für mich wollte ich den Mongo in der Shell starten (unabhängig vom genauen Kontext der Frage, aber mit der gleichen Fehlermeldung, bevor ich den Mongo überhaupt in der Shell starte)
Der Prozess 'MongoDB Service' wurde in Services nicht ausgeführt
Starten Sie cmd als Administrator und geben Sie Folgendes ein:
Um zu sehen, ob MongoDB aktiv ist, geben Sie einfach mongo ein. In cmd werden Details zur Mongo-Version und die Mongo-Verbindungs-URL angezeigt
quelle
Ich habe mich gerade damit konfrontiert ...
Hier habe ich 2 separate Visual Studio-Lösungen (.sln) ... geöffnet, die jeweils in einer eigenen Visual Studio-Instanz geöffnet wurden.
Lösung 2 ruft den Code von Lösung 1 auf. Das Problem hing mit dem Port zusammen, der Lösung 1 zugewiesen war. Ich musste den Port auf Lösung 1 in einen anderen ändern, und dann funktionierte Lösung 2 wieder. Überprüfen Sie daher den Ihrem Projekt zugewiesenen Port.
quelle