Domanda

Devo sviluppare un'applicazione usando C # .net che deve essere eseguita una volta al giorno. Funziona per un massimo di un minuto, quindi lo sviluppo di un servizio Windows è eccessivo e un'attività pianificata è il modo appropriato.

Tuttavia, ho alcune domande su come l'applicazione può comunicare i suoi risultati:

  • Come posso indicare all'utilità di pianificazione che l'attività non è riuscita? È tramite il codice di uscita del programma?
  • Come posso registrare le informazioni di output? L'output della console viene acquisito automaticamente o devo scrivere esplicitamente al Visualizzatore eventi?
È stato utile?

Soluzione

In risposta alle tue domande -

  1. Se un'attività fallisce perché ha generato un'eccezione non selezionata, vedrai che nel visualizzatore Task Sheduled, ci sarà un 'Last Result' con un valore simile a 0xe0434f4d . In alternativa, se si restituisce un codice di uscita che verrà visualizzato anche nella colonna Ultimo risultato del Visualizzatore attività pianificate.

  2. Scrivere sulla console, ad es. Console.WriteLine (" blah "); non comparirà da nessuna parte. Dovresti scrivere nel registro eventi o in un file di registro.

Altri suggerimenti

Se vai nel File di registro , puoi comunque utilizzare Console.WriteLine (" blah "); . Il trucco è reindirizzare i flussi standard Out e Errore :

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

È inoltre necessario svuotare spesso i buffer, per assicurarsi che il file di registro contenga le informazioni correnti.

            Console.Out.Flush();

Questo è veloce e sporco, dovresti davvero usare il Registro eventi di Windows o log4net .

AFAIK lo scheduler ha appena avviato un processo. Puoi utilizzare il registro eventi o un altro sistema di registrazione per registrare le informazioni a cui devi fare riferimento in seguito.

Log4net è un ottimo framework di registrazione completo. Lo consiglio vivamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top