Ich erhalte einen SQL Server-Fehler:
Beim Empfang der Ergebnisse vom Server ist ein Fehler auf Transportebene aufgetreten. (Anbieter: Shared Memory Provider, Fehler: 0 - Das Handle ist ungültig.)
Ich verwende SQL Server 2008 SP1, Windows 2008 Standard 64 Bit.
Es ist eine .NET 4.0-Webanwendung. Dies geschieht, wenn eine Anforderung an den Server gesendet wird. Es ist zeitweise. Irgendeine Idee, wie ich es lösen kann?
sql-server-2008
Chuck Conway
quelle
quelle
this one was resolved in a manner unlikely to help future readers
- Aber 179.000 Menschen sind auf diese Frage gestoßen.Antworten:
Die Datenbankverbindung wird vom Datenbankserver geschlossen. Die Verbindung bleibt im Verbindungspool Ihrer App gültig. Wenn Sie die gemeinsam genutzte Verbindungszeichenfolge abrufen und versuchen, sie auszuführen, kann sie daher die Datenbank nicht erreichen. Wenn Sie Visual Studio entwickeln, schließen Sie einfach den temporären Webserver in Ihrer Taskleiste.
Wenn dies in der Produktion geschieht, sollte das Zurücksetzen Ihres Anwendungspools für Ihre Website den Verbindungspool wiederverwenden.
quelle
MultipleActiveResultSets=True
Einstellung in der Verbindungszeichenfolge, die denselben Fehler verursachte.Versuchen Sie den folgenden Befehl an der Eingabeaufforderung:
Dadurch werden die automatischen Skalierungsfunktionen des Netzwerkstapels deaktiviert
quelle
Ich hatte das gleiche Problem. Ich habe Visual Studio neu gestartet und das Problem wurde behoben
quelle
Für diejenigen, die IIS nicht verwenden, hatte ich dieses Problem beim Debuggen mit Visual Studio 2010. Ich habe alle Debugger-Prozesse beendet: WebDev.WebServer40.EXE, wodurch das Problem behoben wurde.
quelle
Fehler auf Transportebene hängen häufig damit zusammen, dass die Verbindung zum SQL Server unterbrochen wird ... normalerweise im Netzwerk.
Timeout Expired wird normalerweise ausgelöst, wenn die Ausführung einer SQL-Abfrage zu lange dauert.
So wenige Optionen können sein:
quelle
Sie müssen lediglich den ASP.NET-Entwicklungsserver stoppen und das Projekt erneut ausführen
quelle
Wenn Sie über Microsoft SQL Server Management mit Ihrer Datenbank verbunden sind, schließen Sie alle Verbindungen und versuchen Sie es erneut. Hatte diesen Fehler beim Verbinden mit einer anderen Azure-Datenbank und funktionierte beim Schließen für mich. Ich weiß immer noch nicht warum ..
quelle
Erhielt dies immer nach ca. 5 Minuten Betrieb. Untersucht und festgestellt, dass eine Warnung von e1iexpress immer vor dem Fehler aufgetreten ist. Dies ist anscheinend ein Fehler, der mit bestimmten TCP / IP-Adaptern zu tun hat. Der Wechsel von WiFi zu fest verdrahtet hatte jedoch keinen Einfluss darauf.
Also habe ich Plan B ausprobiert und Visual Studio neu gestartet. Dann hat es gut funktioniert.
Bei näherer Betrachtung stellte ich fest, dass die Meldung
The Thread '<No Name>' has exited with code 0
bei korrekter Arbeit fast genau zu dem Zeitpunkt auftrat, als der Lauf bei früheren Versuchen abstürzte. Einige Googler zeigen, dass diese Meldung angezeigt wird, wenn (unter anderem) der Server den Thread-Pool verkleinert.Vermutlich befand sich ein gefälschter Thread im Thread-Pool, und jedes Mal, wenn der Server versuchte, ihn zu "trimmen", wurde die App heruntergefahren.
quelle
Schauen Sie sich den MSDN-Blog an, in dem dieser Fehler beschrieben wird:
quelle
Sie erhalten diese Meldung, wenn Ihr Skript den SQL-Dienst aus bestimmten Gründen beendet. Wenn Sie den SQL-Dienst erneut starten, ist Ihr Problem möglicherweise behoben.
quelle
Ich weiß, dass dies möglicherweise nicht jedem hilft (wer weiß, vielleicht ja), aber ich hatte das gleiche Problem und nach einiger Zeit stellten wir fest, dass die Ursache etwas außerhalb des Codes selbst war.
Der Computer, der versucht, den Server zu erreichen, befand sich in einem anderen Netzwerk. Die Verbindung konnte hergestellt, aber dann getrennt werden.
Die Art und Weise, wie wir das Problem behoben haben, bestand darin, dem Computer eine statische Route hinzuzufügen, die den direkten Zugriff auf den Server ermöglicht, ohne die Firewall zu passieren.
Stichprobe:
Ich hoffe, es hilft jemandem, es ist besser, dies zu haben, zumindest als Hinweis. Wenn Sie sich dem stellen, wissen Sie, wie Sie es lösen können.
quelle
Ich habe den gleichen Fehler in der Visual Studion 2012-Entwicklungsumgebung erhalten, IIS Express gestoppt und die Anwendung erneut ausgeführt. Sie hat funktioniert.
quelle
In meinem Fall wurde der Serverdienst "SQL Server" gestoppt. Beim Neustart des Dienstes konnte ich die Abfrage ausführen und den Fehler beseitigen.
Es ist auch eine gute Idee, Ihre Abfrage zu untersuchen, um herauszufinden, warum die Abfrage diesen Dienst beendet hat
quelle
Ich hatte das gleiche Problem. Ich habe es gelöst und das SQL Server-LOG abgeschnitten. Überprüfen Sie dies und teilen Sie uns mit, ob diese Lösung Ihnen geholfen hat.
quelle
Für mich ist die Antwort, das Betriebssystem von 2008R2 auf 2012R2 zu aktualisieren. Die Lösung von iisreset oder restart apppool hat bei mir nicht funktioniert. Ich habe auch versucht, die Einstellung TCP Chimney Offload zu deaktivieren, aber ich habe den Server nicht neu gestartet, da es sich um einen Produktionsserver handelt, der auch nicht funktioniert hat.
quelle
Für mich war die Lösung völlig anders.
In meinem Fall hatte ich eine Objektquelle, für die ein Datenzeitstempelparameter erforderlich war. Obwohl dieser ODS-Parameter ConvertEmptyStringToNull wahr war, wurde 1/1/0001 an SelectMethod übergeben. Dies wiederum verursachte eine SQL-Datetime-Überlaufausnahme, als diese Datetime an den SQL-Server übergeben wurde.
Ein zusätzlicher Check für datetime.year! = 0001 wurde hinzugefügt und das hat es für mich gelöst.
Seltsam, dass es einen Transport-Level-Fehler und keinen Datetime-Überlauffehler auslösen würde. Sowieso..
quelle
Dieser Fehler ist kürzlich zwischen unserem Business-Server und unserem Datenbankserver aufgetreten. Die Lösung für uns bestand darin, "IP Offloading" auf den Netzwerkschnittstellen zu deaktivieren. Dann ging der Fehler weg.
quelle
Einer der Gründe, warum ich diesen Fehler gefunden habe, ist ' Packet Size = xxxxx ' in der Verbindungszeichenfolge. Wenn der Wert von xxxx zu groß ist, wird dieser Fehler angezeigt. Entfernen Sie diesen Wert und lassen Sie ihn von SQL Server verarbeiten oder halten Sie ihn niedrig, abhängig von den Netzwerkfunktionen.
quelle
Es ist mir passiert, als ich versucht habe, eine SQL-Datenbank wiederherzustellen, und das folgende Kontrollkästchen auf der
Options
Registerkarte aktiviert hat:Da es sich um einen eigenständigen Datenbankserver handelt, wurde das Problem für mich gelöst, indem SSMS nur geschlossen und erneut geöffnet wurde.
quelle
Dies tritt auf, wenn die Datenbank gelöscht und neu erstellt wird. Einige gemeinsam genutzte Ressourcen berücksichtigen immer noch, dass die Datenbank noch vorhanden ist. Wenn Sie also die Ausführungsabfrage erneut ausführen, um Tabellen in der Datenbank zu erstellen, nachdem sie neu erstellt wurde, wird der Fehler nicht erneut
Command(s) completed successfully.
angezeigt und es wird eine Meldung angezeigt wird anstelle der Fehlermeldung angezeigtMsg 233, Level 20, State 0, Line 0 A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)
.Ignorieren Sie diesen Fehler einfach, wenn Sie Datenbanken löschen und neu erstellen und Ihre DDL-Abfragen ohne Sorgen erneut ausführen.
quelle
Ich hatte kürzlich das gleiche Problem, konnte aber in Google keine Antwort erhalten. Denken Sie also daran, es hier zu teilen, damit es in Zukunft jemandem helfen kann.
Error:
Während der Ausführung der Abfrage liefert die Abfrage nur wenige Ausgaben, dann wird der folgende Fehler ausgegeben.
Lösung:
quelle