So erhöhen Sie die Zeit im web.config für die Ausführung von sql-Abfrage
Wenn ich auf eine Abfrage in der web-Anwendung, ich bin immer ein null
Wert. Dieselbe Abfrage direkt im SQL-Management-Studio liefert Ergebnisse zurück.
Ich denke, dass das problem ist ein timeout. Wie kann ich die Zeit verlängern, die für die Ausführung der Abfrage in der web-Anwendung? In meinem web.config : connectionstring
, es ist kein code für timeout. Wenn ich wählen Sie einen timeout gibt, wird das auch Auswirkungen auf andere Teile von meinem system?
- Es kann nicht kontrolliert werden durch die Konfiguration. Set CommandTimeout von SqlCommand. Für das lernen mehr über die page-request timeout-Einstellungen finden Sie im Beitrag stackoverflow.com/questions/7804622/...
- Wie Sie wissen, es ist, weil der timeout? Versuchen Sie, mithilfe von Sql Profiler und sehen, wie Sie die Abfrage wird gebildet. Siehe weitere details wie die Dauer, liest etc. Ziehen Sie die Abfrage aus profiler und dann ausführen, wird die Abfrage in Sql Server.
- Iam mithilfe von sql server 2005 management studio.Wo ist profiler.Ich weiß nicht, wie ust es?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine Sache zu tun.
wie:-
In appsettings.config ->
In der Code ->
Das sollte es tun.
Hinweis:-
Ich konfrontiert die meisten der timeout-Probleme wenn ich SqlHelper Klasse von microsoft application blocks. Wenn Sie es in Ihrem code und vor timeout-Problemen ist es besser Sie verwenden Sie ein sqlcommand-Objekt und setzen Sie seine timeout, wie oben beschrieben. Für alle anderen Szenarien sqlhelper sollte gut gehen. Wenn Ihr client ist ok-mit einer Wartezeit von ein bisschen mehr als das, was sqlhelper Klasse bietet, können Sie voran gehen und verwenden Sie das obige Verfahren.
Beispiel:-
Verwenden Sie diese -
Statt
Update: siehe Auch @Triynko Antwort unten. Es ist wichtig, zu überprüfen, dass auch.
Sollten Sie die
httpRuntime
block und befassen sich mitexecutionTimeout
(in Sekunden).Weitere Informationen, bitte sehen msdn-Seite.
SQL Server hat keine Einstellung zur Kontroll-Abfrage-timeout in der Verbindungszeichenfolge, und soweit ich weiß, dies ist das gleiche für andere große Datenbanken. Aber, das sieht nicht aus wie das problem, das Sie sehen: ich würde erwarten, um zu sehen, eine Ausnahme ausgelöst
wenn es wirklich war ein timeout, der die Abfrage ausführt.
Falls dies nicht entpuppen zu sein ein problem, Sie können ändern Sie den Standard-timeout für eine SQL Server-Datenbank als eine Eigenschaft der Datenbank selbst; verwenden Sie SQL Server-Manager für diesen.
Sicher sein, dass die Abfrage genau das gleiche von Ihrer Web-Anwendung, wie Sie bei der Ausführung direkt. Einen profiler verwenden, um dies zu überprüfen.
Ich denke, Sie können nicht erhöhen die Zeit, die für die Ausführung einer Abfrage, aber Sie brauchen, um erhöhen Sie das timeout für die Anforderung ist.
Für Details, bitte haben Sie einen Blick auf https://msdn.microsoft.com/en-us/library/e1f13641%28v=vs.100%29.aspx
Können Sie in der web.config. e.g
Merke ich, ich bin etwas spät, um das Spiel, aber nur über einen Tag auf dem Versuch, ändern Sie den timeout einer webservice. Es schien ein Standard-timeout von 30 Sekunden. Ich habe nach dem Wechsel evry andere timeout-Wert, den ich finden konnte, einschließlich:
Finaley fand ich, dass es das SqlCommand-timeout, der war standardmäßig auf 30 Sekunden.
Beschloss ich Dupliziere einfach den timeout der connection-string auf den Befehl.
Die Verbindungszeichenfolge konfiguriert ist im web.config.
Code:
Änderung eingeführt, um "doppelte" den timeout-Wert in der Verbindungszeichenfolge:CommandTimeout = conn.ConnectionTimeout