So erhöhen Sie die Zeit in web.config für die Ausführung der SQL-Abfrage

8

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?

    
Jui Test 02.11.2011, 06:54
quelle

5 Antworten

9

Sie können eine Sache tun.

  1. Erstellen Sie in der AppSettings.config (erstellen Sie eine, falls nicht vorhanden) ein Schlüsselwertpaar.
  2. Ziehen Sie im Code den Wert und konvertieren Sie ihn in Int32 und weisen Sie ihn command.TimeOut.
  3. zu

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.

    
user3328730 24.04.2015 06:40
quelle
4

Sie sollten den httpRuntime -Block hinzufügen und mit executionTimeout (in Sekunden) umgehen.

%Vor%

Weitere Informationen finden Sie auf der msdn-Seite .

    
ibo.ezhe 02.11.2011 07:05
quelle
3

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.

    
Jeremy McGee 02.11.2011 07:13
quelle
1

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%     
Muhammad Akhtar 02.11.2011 07:08
quelle
0

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:

  • DB-Verbindungszeichenfolge Connect Timeout
  • Ссылка
  • basicHttpBinding Bindung closeTimeout
  • basicHttpBinding Bindung sendTimeout
  • basicHttpBinding binding receiveTimeout
  • basicHttpBinding Bindung openTimeout

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

    
kesse 08.04.2016 09:29
quelle