Beim Senden der Anforderung an den Server ist ein Fehler auf Transportebene aufgetreten


8

In unserer Vb.net-Anwendung (Benutzer innerhalb einer lokalen Netzwerkverbindung innerhalb eines Büros), die seit langem verwendet wird, erhalten einige Benutzer die Fehler nur manchmal täglich

Beim Senden der Anforderung an den Server ist ein Fehler auf Transportebene aufgetreten. (Provider: TCP Provider, Fehler: 0 - Eine bestehende Verbindung wurde vom Remote-Host zwangsweise geschlossen.

Ich habe bereits folgendes überprüft

  1. Alle Datenbanken sind auf automatische Abschaltung eingestellt

  2. Ich habe nicht viele Netzwerkprobleme gefunden und die Netzwerkgeschwindigkeit ist gut.

  3. Beim Einchecken von SSMS wurde das Zeitlimit für Remote-Abfragen unter Servereigenschaften auf 600 Sekunden festgelegt

  4. Ich habe das SQL Server-Protokoll überprüft und keine diesbezüglichen Fehler oder dieselbe Fehlermeldung gefunden

Was kann der Grund für diesen Fehler sein? Und wie kann man das Problem beheben?

Antworten:


9

Wenn eine Anwendung eine Verbindung (erfolgreich) zu SQL Server öffnet und diese offen lässt, bevor eine (oder möglicherweise eine andere) Abfrage gesendet wird, und SQL diese Verbindung in der Zwischenzeit aus irgendeinem Grund beendet (z. B. Neustart des Dienstes oder Ein Kill-Befehl wird gesendet. Wenn die Verbindung (die denkt, dass sie offen ist) versucht, einen Befehl zu senden, wird dieser Fehler angezeigt.

Erfassen Sie also den Fehler in Ihrer Anwendung und stellen Sie die Verbindung wieder her. Versuchen Sie dann den Befehl erneut.


4

Ich sehe diesen Fehler meistens, wenn aus irgendeinem Grund die Netzwerkverbindung unterbrochen wurde, sogar für einige Sekunden. Dies kann jemand sein, der ein Kabel abtrennt, eine instabile WLAN-Verbindung, ein fehlerhafter Netzwerk-Switch, ein Computer, der in den Energiesparmodus wechselt (standardmäßig unter Win7 und höher), ein Windows-Update, das einen Netzwerktreiber aktualisiert usw.


2
Ich habe gesehen, dass dies auch über VPN-Verbindungen geschieht. Ich bin mir nicht sicher, ob dies hier der Fall ist.
ses011

2

Ich bin vor einiger Zeit auf denselben Fehler gestoßen und wollte meine Antwort posten, konnte mich aber nicht anmelden und habe es einfach vergessen. Ich bin wieder auf diese Frage gestoßen und werde meine Antwort so gut ich kann erinnern, da sie ziemlich dunkel ist und ich nirgendwo anders eine Erwähnung finden konnte.

Dieser Fehler wird von MS-SQL-Datenbanken zurückgegeben, wenn ein ungültiges Datum aus .NET (und möglicherweise anderen Quellen) an einen SP übergeben wird. IIRC, ich habe ein .NET MinDate (dh einen Standardwert) übergeben. Überprüfen Sie einfach Ihre Datumsparameter und stellen Sie sicher, dass sie sinnvoll sind!


0

Ich habe genau den gleichen Fehler in meiner Anwendung erhalten. Es werden viele Datensätze in einer einzigen Transaktion aktualisiert. Ich habe dies behoben, indem ich den Parameter SqlCommand.CommandTimeout erhöht habe.


-4

In meinem Fall wird dieser Fehler angezeigt, wenn der Speicherplatz auf Ihrem C-Laufwerk niedrig ist und jede Sekunde neue Protokolldateien generiert werden.

Die Auflösung ist also, dass alle Protokolle im Laufwerk c gelöscht werden und dann wieder einwandfrei funktionieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.