2008-10-06 19 views
10

Tengo que desarrollar una aplicación usando C# .net que se debe ejecutar una vez al día. Solo se ejecuta durante un minuto como máximo, por lo que desarrollar un servicio de Windows es excesivo y una tarea programada es la adecuada.Desarrollando una tarea programada para Windows

Sin embargo, tengo algunas preguntas acerca de cómo la aplicación puede comunicar sus resultados:

  • ¿Cómo puedo indicar al programador de tareas que la tarea ha fallado? ¿Esto es a través del código de salida del programa?
  • ¿Cómo registro la información de salida? ¿Se captura automáticamente la salida de la consola o debo escribir explícitamente en el visor de eventos?

Respuesta

7

En respuesta a sus preguntas -

  1. Si una tarea falla, ya que inició una excepción sin control verá que en el visor sheduled de tareas, habrá un 'Último Resultado' con un valor algo como 0xe0434f4d. Alternativamente, si devuelve un código de salida que también se mostrará en la columna Último resultado del visor de tareas programadas.

  2. Escribiendo en la consola p. Ej. Console.WriteLine("blah"); no aparecerá en ningún lado. Debería escribir en el registro de eventos o en un archivo de registro.

0

AFAIK el programador acaba de iniciar un proceso. Puede usar el registro de eventos u otro sistema de registro para registrar la información que necesita consultar más adelante.

4

Si usted va la archivo de registro manera, todavía se puede utilizar Console.WriteLine("blah");. El truco consiste en redirigir el estándar de salida y error corrientes:

 StreamWriter mylog = new StreamWriter("mylog.log"); 
     Console.SetOut(mylog); 
     Console.SetError(mylog); 

También es necesario vaciar los buffers menudo, para asegurarse de que el archivo de registro contiene información actual.

  Console.Out.Flush(); 

Ésta es rápido y sucio, que realmente debería utilizar el registro de eventos de Windows o log4net.

0

Log4net es un muy buen y completo marco de trabajo. Lo puedo recomendar.

Cuestiones relacionadas