Wie kann der Fehler “Eine vorhandene Verbindung wurde vom Remote-Host zwangsweise geschlossen” behoben werden?
Ein entfernter Computer ist derjenige, der keine physische Präsenz hat. Der Zugriff ist nur über ein Computernetzwerk möglich. Der Remote-Host ist der Computer, auf dem sich das Netzwerk befindet, auf dem sich der Remote-Computer befindet, und der Remote-Client ist der Benutzer des Remote-Clients im Netzwerk. Diese Funktion hat viele Prozesse revolutioniert und hat auch in Zukunft einen großen Anwendungsbereich.
Eine vorhandene Verbindung wurde durch den lokalen Hostfehler zwangsweise geschlossen
In jüngster Zeit sind jedoch viele Berichte über den Fehler “Eine vorhandene Verbindung wurde vom Remote-Host zwangsweise geschlossen” eingegangen, als versucht wurde, eine Verbindung zum Remote-Host herzustellen. Dieser Fehler wird bei einer Socket-Verbindung zwischen einem Client und einem Server ausgelöst. In diesem Artikel bieten wir einige praktikable Lösungen, um diesen Fehler vollständig zu beheben und Sie über die Gründe zu informieren, die diesen Fehler auslösen.
Was verursacht den Fehler “Eine vorhandene Verbindung wurde vom Remote-Host zwangsweise geschlossen” in Windows?
Nachdem wir zahlreiche Berichte von mehreren Benutzern erhalten hatten, beschlossen wir, das Problem zu untersuchen, und entwickelten eine Reihe von Lösungen, um es zu beheben. Außerdem haben wir die Gründe untersucht, aus denen es ausgelöst wird, und sie unten aufgeführt.
- Verwendung von TLS 1.1 / 1.0: Wenn die Anwendung unter TLS 1.1 oder TLS 1.0 ausgeführt wird, kann dieser Fehler ausgelöst werden, da sie abgeschrieben werden. TLS 1.2 ist der richtige Weg, wenn Sie das von der Anwendung verwendete Protokoll auswählen.
- Kryptografie deaktiviert: Wenn die Kryptografie für Ihren Computer deaktiviert wurde, wird die Verwendung von TLS 1.2 verhindert und auf TLS 1.0 zurückgegriffen, wodurch der Fehler möglicherweise ausgelöst wird.
- Socket-Implementierung: In einigen Fällen löst eine bestimmte Art der Socket-Implementierung den Fehler aus. Bei einigen Implementierungen der .NET-Anwendung ist ein Fehler aufgetreten, der diesen Fehler verursachen kann.
- Fehlender Code: Bei einigen Personen, die das Entity Framework verwendeten, wurde festgestellt, dass eine bestimmte Codezeile fehlte, aufgrund derer der Fehler ausgelöst wurde.
- Veraltetes “.NET” Framework: In bestimmten Fällen kann dieser Fehler ausgelöst werden, wenn das “.NET” Framework deaktiviert wurde. Für bestimmte Aufgaben muss das .NET-Framework auf die neueste Version aktualisiert werden, damit sie ordnungsgemäß funktionieren.
Nachdem Sie ein grundlegendes Verständnis der Art des Problems haben, werden wir uns den Lösungen zuwenden. Stellen Sie sicher, dass Sie diese in der angegebenen Reihenfolge implementieren, um Konflikte zu vermeiden.
Lösung 1: Aktivieren der Kryptografie
Wenn die Kryptografie für Ihren Computer deaktiviert wurde, ist die Verwendung von TLS 1.2 untersagt. Daher aktivieren wir in diesem Schritt die Kryptografie. Dafür:
- Drücken Sie “Windows” + “R”, um die Eingabeaufforderung “Ausführen” zu öffnen.
- Geben Sie “regedit” ein und drücken Sie die Eingabetaste.Geben Sie “Regedit” ein und drücken Sie die Eingabetaste.
- Navigieren Sie zu der folgenden Adresse: HKEY_LOCAL_MACHINE SOFTWARE Microsoft .NETFramework v4.0.3031Navigieren Sie zu dieser Adresse, wenn im rechten Bereich kein Wert für “SchUseStrongCrypto” vorhanden ist.
HKEY_LOCAL_MACHINE SOFTWARE Wow6432Node Microsoft .NETFramework v4.0.30319
- Doppelklicken Sie im rechten Bereich auf die Option “SchUseStrongCrypto” und geben Sie “1” als Wertdaten ein.Doppelklicken Sie im rechten Bereich auf den Wert “SchUseStrongCrypto”
- Klicken Sie auf “OK”, um Ihre Änderungen zu speichern und zu überprüfen, ob das Problem weiterhin besteht.
Lösung 2: Erzwingen der Verwendung von TLS 1.2
Wenn die Anwendung für die Verwendung von TLS 1.1 oder TLS 1.0 anstelle von TLS 1.2 konfiguriert wurde, wird dieser Fehler möglicherweise ausgelöst. Daher konfigurieren wir in diesem Schritt unseren Computer für die Verwendung von TLS 1.2. Dafür:
- Navigieren Sie zum Stammverzeichnis der Site und klicken Sie mit der rechten Maustaste auf die Datei “global.asax”.
- Wählen Sie “Code anzeigen” aus der Liste.
- Es sollte eine “Application_Start” -Methode vorhanden sein. Fügen Sie dieser Methode die folgende Codezeile hinzu, wenn (ServicePointManager.SecurityProtocol.HasFlag (SecurityProtocolType.Tls12) == false) {ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12; }}Hinzufügen der Zeilen zum Code
- Speichern Sie Ihre Änderungen und prüfen Sie, ob das Problem weiterhin besteht.
Lösung 3: Ändern der Socket-Implementierung
Wenn eine bestimmte Socket-Implementierung einen Fehler oder eine Panne aufweist, kann dies dazu führen, dass bestimmte Elemente der Anwendung nicht ordnungsgemäß funktionieren, wodurch dieser Fehler möglicherweise ausgelöst wird. Daher konfigurieren wir es in diesem Schritt für die Verwendung einer anderen Implementierung. Dafür:
- Stellen Sie sicher, dass Sie eine “StateObject” -Klasse mit “public byte” haben[] Puffer = neues Byte[1024], öffentliche Steckdose; “.
- Rufen Sie die Funktion “Receive (Socket s)” auf und rufen Sie den folgenden Code in “void ReceiveCallback (IAsyncResult ar)” auf. SocketError errorCode; int nBytesRec = socket.EndReceive (ar, out errorCode); if (errorCode! = SocketError.Success) {nBytesRec = 0; }}
- Überprüfen Sie, ob das Problem nach der Implementierung dieses Codes weiterhin besteht.
Lösung 4: Hinzufügen von Befehlszeilen (nur für Entity Framework)
Wenn Sie das Entity Framework verwenden, fehlt möglicherweise eine bestimmte Codezeile. Daher werden wir in diesem Schritt diese Codezeile hinzufügen, um dieses Problem zu beheben. Dafür:
- Öffnen Sie Ihre “.edmx” -Datei und öffnen Sie die “.context.tt” -Datei darunter.
- Öffnen Sie die Datei “.context.cs” und fügen Sie Ihrem Konstrukt öffentlich DBEntities () die folgende Codezeile hinzu: base (“name = DBEntities”) {this.Configuration.ProxyCreationEnabled = false; // DIESE LINIE HINZUFÜGEN! }}
- Überprüfen Sie, ob das Problem nach dem Hinzufügen dieser Codezeile weiterhin besteht.
Lösung 5: Aktualisieren von .NET Framework
Die neueste Version des .NET Frameworks ist erforderlich, damit alles reibungslos funktioniert. Daher werden wir in diesem Schritt die neueste Version von der Site herunterladen und installieren. Dafür:
- Navigieren Sie zu Dies Link zum Herunterladen des Setups.
- Führen Sie die Datei “.exe” aus, um den Installationsvorgang zu starten.Ausführen der von Microsoft heruntergeladenen ausführbaren Datei
- Befolgen Sie die Anweisungen auf dem Bildschirm, um die Anwendung auf Ihrem Computer zu installieren.
- Überprüfen Sie nach Abschluss der Installation, ob das Problem weiterhin besteht.