Aangepast van een artikel dat ik jaren geleden op aspfaq.com schreef.
Gebruik de opdracht AT en Windows Scripting Host (of de meer rudimentaire taakplanner) om met bepaalde tussenpozen een VBS-bestand te plannen.
Wijzig eerst de ASP in een VBS-bestand. Dit wordt bereikt door (1) de extensie te wijzigen in VBS; (2) alle Server.CreateObject-aanroepen wijzigen in CreateObject; en, (3) het verwijderen van alle <%%>
scheidingstekens en alle voor de browser bestemde code (bijvoorbeeld response.write-instructie of client-side HTML). Ik kwam geen verdere complicaties tegen, maar YMMV.
U slaat het VBS-bestand op in het bestandssysteem en gebruikt het AT-commando om het te plannen (dit plant de uitvoering in feite met de planningsservice van Windows). Bij een opdrachtprompt kunt u AT zelf gebruiken om een lijst met taken te zien die momenteel in het schema staan. U kunt AT /? om alle syntaxismogelijkheden te ontdekken.
Om bijvoorbeeld een bestand elke weekdag om 9.00 uur te laten draaien, start ik dit batchbestand (de eerste regel wist bestaande invoer):
at /delete /y
at 9:00 /every:m,t,w,th,f d:\net\shared\getdata.vbs
Merk op dat er geen webserver bij betrokken is; het bestand is rechtstreeks toegankelijk via het bestandssysteem. Toen ik eenmaal over de hindernissen "een gebruiker moet zijn ingelogd" en "de taken moeten worden gereset wanneer opnieuw wordt opgestart" (die beide volgens mij problemen zijn met de specifieke machine die niet onder onze controle staat), is alles uitgevoerd prima voor mij.
Voor een voorbeeld van het gebruik van WSH, CDONTS en de Taakplanner om regelmatig e-mails te versturen, zie KB #221495 .
Als u alleen databasewerk in SQL Server doet, kunt u overwegen een taak te gebruiken. Hierdoor kunt u alle verwerking van de taak binnen uw database houden en de complicaties voorkomen die gepaard gaan met meerdere systemen, verbindingen en het aanpassen van ASP-code om niet-ASP-achtig gedrag te vertonen.