Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Lassen Sie den Server täglich asp-script automatisch ausführen

Angepasst an einen Artikel, den ich vor Jahren auf aspfaq.com geschrieben habe.

Verwenden Sie den AT-Befehl und Windows Scripting Host (oder den rudimentäreren Aufgabenplaner), um eine VBS-Datei in bestimmten Intervallen zu planen.

Ändern Sie zunächst die ASP in eine VBS-Datei. Dies wird erreicht, indem (1) die Erweiterung auf VBS geändert wird; (2) Ändern aller Server.CreateObject-Aufrufe in CreateObject; und (3) Entfernen aller <%%> Trennzeichen und jeglichen für den Browser bestimmten Code (z. B. response.write-Anweisung oder clientseitiges HTML). Ich hatte keine weiteren Komplikationen, aber YMMV.

Sie speichern die VBS-Datei im Dateisystem und verwenden den AT-Befehl, um sie zu planen (dies plant tatsächlich ihre Ausführung mit dem Zeitplandienst von Windows). An einer Eingabeaufforderung können Sie AT selbst verwenden, um eine Liste der Aufgaben anzuzeigen, die sich derzeit im Zeitplan befinden. Sie können AT /? um alle seine Syntaxmöglichkeiten herauszufinden.

Um beispielsweise eine Datei jeden Wochentag um 9:00 Uhr auszuführen, starte ich diese Batchdatei (die erste Zeile löscht vorhandene Einträge):    

at /delete /y 
at 9:00 /every:m,t,w,th,f d:\net\shared\getdata.vbs      

Beachten Sie, dass kein Webserver beteiligt ist; auf die Datei wird direkt über das Dateisystem zugegriffen. Sobald ich die Hürden "ein Benutzer muss angemeldet sein" und "die Aufgaben müssen beim Neustart zurückgesetzt werden" überwunden habe (beides glaube ich, dass es sich um Probleme mit dem bestimmten Computer handelt, der nicht unter unserer Kontrolle steht), lief alles gut für mich.

Ein Beispiel für die Verwendung von WSH, CDONTS und dem Taskplaner zum regelmäßigen Versenden von E-Mails finden Sie unter KB #221495 .

Wenn Sie nur mit Datenbanken in SQL Server arbeiten, sollten Sie einen Job verwenden. Dadurch können Sie die gesamte Verarbeitung des Auftrags in Ihrer Datenbank belassen und die Komplikationen vermeiden, die mit mehreren Systemen, Verbindungen und der Anpassung von ASP-Code in ein nicht-ASP-ähnliches Verhalten verbunden sind.