Wenn ich eine Abfrage in einer Webanwendung ausführe, erhalte ich einen null
-Wert. Die gleiche Abfrage direkt in SQL Management Studio gibt Ergebnisse zurück.
Ich denke, dass das Problem eine Zeitüberschreitung ist. Wie kann ich die Zeit für die Ausführung der Abfrage in der Webanwendung erhöhen? In meinem web.config: connectionstring
gibt es keinen Code für Timeout. Wenn ich dort eine Zeitüberschreitung wähle, betrifft das andere Teile meines Systems?
Sie können eine Sache tun.
wie: - In appsettings.config - & gt;
%Vor%In Code - & gt;
%Vor%Das sollte es tun.
Hinweis: - Ich habe die meisten Timeout-Probleme konfrontiert, als ich die SqlHelper-Klasse aus Microsoft-Anwendungsblöcken verwendete. Wenn Sie es in Ihrem Code haben und Timeout-Probleme haben, verwenden Sie besser sqlcommand und setzen Sie das Timeout wie oben beschrieben. Für alle anderen Szenarien sollte sqlhelper gut sein. Wenn Ihr Client in Ordnung ist, etwas länger zu warten, als die sqlhelper-Klasse bietet, können Sie die oben genannte Technik verwenden.
Beispiel: - Benutze das -
%Vor%Anstelle von
%Vor%Update: Siehe auch @Triynko Antwort unten. Es ist wichtig, das auch zu überprüfen.
Sie sollten den httpRuntime
-Block hinzufügen und mit executionTimeout
(in Sekunden) umgehen.
Weitere Informationen finden Sie auf der msdn-Seite .
SQL Server hat keine Einstellung zum Steuern des Abfragetimeouts in der Verbindungszeichenfolge, und soweit ich weiß, ist dies für andere wichtige Datenbanken gleich. Aber das sieht nicht wie das Problem aus, das Sie sehen: Ich würde erwarten, dass eine Ausnahme ausgelöst wird
Fehler: System.Data.SqlClient.SqlException: Timeout ist abgelaufen. Das Zeitlimit ist vor dem Abschluss des Vorgangs abgelaufen oder der Server reagiert nicht.
wenn es wirklich eine Zeitüberschreitung gab, die die Abfrage ausführt.
Wenn sich dies als Problem herausstellt, können Sie das Standardzeitlimit für eine SQL Server-Datenbank als Eigenschaft der Datenbank selbst ändern. Verwenden Sie hierzu den SQL Server-Manager.
Stellen Sie sicher, dass die Abfrage genau in Ihrer Webanwendung die gleiche ist wie die, die Sie direkt ausführen. Verwenden Sie einen Profiler, um dies zu überprüfen.
Ich denke, Sie können die Zeit für die Abfrageausführung nicht erhöhen, aber Sie müssen das Zeitlimit für die Anfrage erhöhen.
Ausführungstimeout Gibt die maximale Anzahl von Sekunden an, die eine Anfrage ausführen darf, bevor sie automatisch heruntergefahren wird ASP.NET. (Standardzeit ist 110 Sekunden.)
Weitere Informationen finden Sie in Ссылка
Das können Sie in der web.config tun. z. B.
%Vor%Mir ist klar, dass ich zu spät zum Spiel bin, aber ich habe nur einen Tag damit verbracht, die Zeitüberschreitung eines Webservice zu ändern. Es schien ein Standard-Timeout von 30 Sekunden zu haben. Ich nach dem Ändern jeden anderen Timeout-Wert könnte ich finden, einschließlich:
Finaley Ich habe festgestellt, dass das SqlCommand-Timeout standardmäßig 30 Sekunden betrug.
Ich habe beschlossen, das Timeout der Verbindungszeichenfolge zu dem Befehl zu duplizieren. Die Verbindungszeichenfolge wird in der Datei web.config konfiguriert.
Irgendein Code:
%Vor%Änderung eingeführt, um den Zeitüberschreitungswert aus der Verbindungszeichenfolge zu duplizieren: CommandTimeout = conn.ConnectionTimeout
Tags und Links sql web-config asp.net connection-string