Domanda

Sto creando il mio primo processo timer e voglia di debug. Ho installato il processo timer attraverso una funzione, e ha aggiunto alla collezione JobDefinitions di un'applicazione web, e ha aggiunto uno SPMinuteSchedule per eseguire ogni 5 minuti (a scopo di test).

Poi, in Visual Studio ho provato allegando il debugger al processo del WebApplication, il processo di Central Admin e il processo Owstimer.exe, ma non sarà il debug nel metodo Execute del TimerJob. Che cosa mi manca qui.

P.S. Lo stato del processo timer dice riuscito, quindi è in esecuzione. Strano ...

È stato utile?

Soluzione

Quando sto debug TimerJobs inserisco un Assertion al primissimo inizio del metodo Execute, che sarà sempre esito negativo. Questo si traduce in un pop up ogni volta che il metodo Execute viene chiamato in modo da poter essere sicuri che il TimerJob è stato avviato e avere abbastanza tempo per connettere il debugger. Naturalmente è necessario rimuovere l'asserzione prima di andare in diretta.

System.Diagnostics.Trace.Assert(false);

Una cosa più importante è che si riavvia il servizio Timer dopo è stato distribuito una nuova DLL. In caso contrario, il servizio timer eseguirà il TimerJob dal vecchio DLL.

Altri suggerimenti

motivi più comuni:

  1. Hai fatto una build di debug?
  2. Lo si posiziona il file PDB nella stessa cartella del montaggio? (Un semplice rel="nofollow Ricerca dovrebbe spiegare come - ad es. debug Processi timer )
  3. debug personalizzato processi timer su MSDN per alcuni suggerimenti.
  4. Eseguire la 3 R:. Re-build e ridistribuire il montaggio e reset del Servizio timer prima di provare a collegare di nuovo
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top