Ich habe einen Code wie diesen, um ein Diagramm auf meiner Seite in Echtzeit alle 30 Sekunden zu aktualisieren:
%Vor%Das scheint gut zu funktionieren, außer nach 16-20 Stunden ununterbrochener Ajax-Anrufe bekomme ich einen Fehler vom Server zurück:
Zeitlimit abgelaufen Die Timeout-Zeit ist abgelaufen, bevor a Verbindung vom Pool. Dies kann geschehen, weil alle gepoolt wurden Verbindungen wurden verwendet und die maximale Poolgröße wurde erreicht.
Ich habe die Debug-Konsole hochgefahren und das ist was ich beobachte:
Timeout
-Fehler zum ersten Mal gesehen)
Ich bin mir sicher, dass ich etwas fundamental falsch mache. Irgendwelche Ideen zur Lösung dieses Problems?
Meine Verbindungszeichenfolge:
%Vor%Der Code zum Abrufen der Datensätze:
%Vor% Wenn ich etwas nicht vermisse, schließe ich die Verbindung, nachdem ich die Datensätze mit con.Close()
erstellt habe, oder muss ich noch etwas anderes tun?
Es sieht aus wie ein serverseitiges Problem mit zu vielen Verbindungen zu einer Datenbank. Wie verbinden Sie sich mit der DB? Schließen Sie die Verbindung nach der Verwendung? Versuchen Sie, die Verbindung nach einer Reihe von Verbindungen zu schließen.
"Ich bekomme einen Fehler vom Server zurück" lässt mich glauben, dass dies ein serverseitiges Ressourcenleck ist. Was passiert, wenn Sie zwei Browser-Registerkarten parallel oder zwei Browser parallel ausführen oder zwei Hosts mit eigenen Browsern den Server parallel anstoßen?
Bleibt Ihr Browser memoriert im Laufe der Zeit?
Wenn Sie Zugang zu serverseitigen Logs haben, wäre das auch ein Punkt zum Eintauchen.
BEARBEITEN
Nachdem Sie den Servercode gesehen haben, möchten Sie möglicherweise auch den Reader für die Sicherheit schließen. Ich wäre überrascht, wenn das ein Leck verursachen würde, aber Sie wissen nie. Ich bin vertrauter mit Java, wo dies je nach verwendetem Treiber zu einem Leck führen kann.
%Vor%Tags und Links javascript jquery asp.net iis ajax