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. Es kann nur über eine Art Computernetzwerk darauf zugegriffen werden. 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.
In jüngster Zeit sind jedoch viele Berichte über eine „Eine bestehende Verbindung wurde vom Remote-Host zwangsweise geschlossenFehler beim Versuch, 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 aufgelistet.
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 spezifischen Reihenfolge implementieren, in der sie angezeigt werden, 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.
- Eintippen "Regedit" und drücke "Eingeben“.
- Navigieren Sie zur folgenden Adresse
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031
Navigieren Sie zu dieser Adresse, wenn keine “SchUseStrongCrypto”Wert im rechten Bereich.
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319
- Doppelklicken Sie im rechten Bereich auf „SchUseStrongCryptoOption und geben Sie "1”Als Wertdaten.
- Klicke auf "OK”, Um Ihre Änderungen zu speichern und prüfen um zu sehen, 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 das "Global.asax" Datei.
- Wählen "Aussicht Code" von der Liste.
- Es sollte ein „Application_StartFügen Sie dieser Methode die folgende Codezeile hinzu
if (ServicePointManager.SecurityProtocol.HasFlag (SecurityProtocolType.Tls12) == false) {ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12; }}
- speichern Ihre Änderungen und prüfen um zu sehen, 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 ein “StateObject "Klasse mit"öffentliches Byte [] Puffer = neues Byte [1024], öffentlicher Socket-Socket;“.
- Ruf den "Empfangen (Sockel s)”Funktionieren und rufen Sie den folgenden Code in“void ReceiveCallback (IAsyncResult ar)”
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:
- Öffne dein ".edmx"Datei und öffnen Sie die".context.tt” Datei darunter.
- Öffne das ".context.cs”Datei und fügen Sie Ihrem Konstruktor die folgende Codezeile hinzu
public DBEntities (): base ("name = DBEntities") {this.Configuration.ProxyCreationEnabled = false; // DIESE LINIE HINZUFÜGEN! }}
- Überprüfen Sie nach dem Hinzufügen dieser Codezeile, ob das Problem 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 diesem Link, um das Setup herunterzuladen.
- Führen Sie die “.exeDatei, um den Installationsvorgang zu starten.
- Folgen die Anweisungen auf dem Bildschirm, um die Anwendung auf Ihrem Computer zu installieren.
- Prüfen um festzustellen, ob das Problem nach Abschluss der Installation weiterhin besteht.