Hin und wieder in einer hohen .NET-Anwendung Volumen, können Sie diese Ausnahme sehen, wenn Sie versuchen, eine Abfrage auszuführen:Wie gehen Sie mit Transport-Level-Fehlern in SqlConnection um?
System.Data.SqlClient.SqlException: A transport-level error has occurred when sending the request to the server.
Nach meinen Recherchen ist dies etwas, das nicht viel „passiert einfach“ kann getan werden, um es zu verhindern. Es tritt nicht als Ergebnis einer fehlerhaften Abfrage auf und kann im Allgemeinen nicht dupliziert werden. Es kommt nur vielleicht alle paar Tage in einem ausgelasteten OLTP-System vor, wenn die TCP-Verbindung zur Datenbank aus irgendeinem Grund schlecht wird.
Ich bin gezwungen, diesen Fehler zu erkennen, indem Sie die Ausnahmebedingungsnachricht analysieren und dann die gesamte Operation von Grund auf neu versuchen, um eine neue Verbindung einzuschließen. Nichts davon ist hübsch.
Hat jemand alternative Lösungen?
RAM erhöhen –
Haben Sie Statistiken über die Belastung Ihres Datenbankservers, wenn diese Fehler ausgelöst werden? Möglicherweise haben Sie einige Datenbankprobleme, die dazu führen, dass Verbindungen fehlschlagen. –
Dies * sollte nicht passieren, auch bei hohem Transaktionsvolumen. Wir führen durchschnittlich 25.000 Transaktionen pro Sekunde in SQL Server 2005 Standard aus, und wir erhalten diesen Fehler nicht. (Es sei denn, der Cluster schlägt alle 12 Monate und nicht alle paar Tage fehl.) Ohne weitere Informationen scheint es ein Netzwerkproblem zwischen Ihrem Datenbankserver und Ihren Anwendungsservern zu geben. Kannst du mehr Infos posten? – Portman