wir verwenden .net 4 MVC2 mit EF & amp; SQL Server 2005.
Für einige Anfragen, und es passiert selten, und nur wenn wir die Suche durchführen, die mit Klassen implementiert wird, die gespeicherten Prozeduren zugeordnet sind, die Volltextsuche durchführen, bekommen wir die Ausnahme:
%Vor%Wenn die Suche nach dem Auftreten des Fehlers wiederholt wird (mit demselben oder einem anderen Begriff), funktioniert sie regelmäßig.
Alle Vorschläge gut geschätzt
Danke
- MB
THOUGHT 1: Die Ausnahme scheint zu passieren, nachdem die Verbindung zu SQL-Server hergestellt wurde, und während die gespeicherte Prozedur ausgeführt wird, bin ich richtig? Wenn dies der Fall ist, müsste ich das Zeitlimit für die Abfrageausführung und nicht das Verbindungstimeout verlängern? Ist das möglich, wo?
Gedanke 2: Vielleicht irre ich mich und das könnte eine schale Verbindung im Pool sein? In der Java-Welt können Sie die SQL übergeben, die auf der Verbindung ausgeführt wird, bevor die App es erhält, um sicherzustellen, dass die Verbindung geöffnet ist und funktioniert? Könnte das das verursachen? Ich konnte eine solche Option nicht in Ссылка finden
Gedanke 3: Ich bin verloren:)
Sie können versuchen, die ObjectContext.CommandTimeout
-Eigenschaft festzulegen :
Ruft den Zeitüberschreitungswert in Sekunden für alle Objektkontextvorgänge ab oder legt diesen fest. Ein Nullwert gibt an, dass der Standardwert des zugrunde liegenden Anbieters verwendet wird.
Ich habe EF 4.3.1, SQL 2008 verwendet und hatte das gleiche Problem mit einer EF LINQ-Abfrage, die länger als die Standard 30 Sekunden dauert.
Also habe ich den "Connection Timeout = 120;" in der Verbindungszeichenfolge.
Überschreibe dann den DbContext-Konstruktor und setze alle Timeouts für die Verwendung des Verbindungstimeouts aus der Verbindungszeichenfolge;
%Vor%Wenn Sie das Zeitlimit für bestimmte Abfragen nur erhöhen wollten, entfernen Sie den Konstruktor und setzen Sie ihn wie gewünscht;
%Vor%Tags und Links .net entity-framework-4