Adaptado de un artículo que escribí en aspfaq.com hace años.
Use el comando AT y Windows Scripting Host (o el programador de tareas más rudimentario) para programar un archivo VBS en ciertos intervalos.
Primero, cambie el ASP a un archivo VBS. Esto se logra (1) cambiando la extensión a VBS; (2) cambiar todas las llamadas de Server.CreateObject a CreateObject; y (3) eliminando todos los <%%>
delimitadores y cualquier código destinado al navegador (por ejemplo, declaración response.write o HTML del lado del cliente). No me encontré con más complicaciones, pero YMMV.
Almacena el archivo VBS en el sistema de archivos y usa el comando AT para programarlo (esto en realidad programa su ejecución con el servicio de programación de Windows). En un símbolo del sistema, puede usar AT solo para ver una lista de tareas actualmente en el cronograma. Puedes usar AT /? para conocer todas sus posibilidades sintácticas.
Por ejemplo, para que un archivo se ejecute todos los días de la semana a las 9:00 a. m., ejecuto este archivo por lotes (la primera línea borra las entradas existentes):
at /delete /y
at 9:00 /every:m,t,w,th,f d:\net\shared\getdata.vbs
Tenga en cuenta que no hay un servidor web involucrado; se accede al archivo directamente a través del sistema de archivos. Una vez que superé los obstáculos "un usuario debe iniciar sesión" y "las tareas deben restablecerse cuando se reinician" (que creo que son problemas con la máquina en particular que no está bajo nuestro control), todo ha estado funcionando bien por mí.
Para ver un ejemplo del uso de WSH, CDONTS y el Programador de tareas para enviar correos electrónicos con regularidad, consulte KB n.º 221495 .
Si todo lo que está haciendo es trabajo de base de datos en SQL Server, podría considerar usar un trabajo. Esto le permitirá mantener todo el procesamiento del trabajo dentro de su base de datos y evitar las complicaciones asociadas con múltiples sistemas, conexiones y la adaptación del código ASP para que no tenga un comportamiento similar al de ASP.