Per vari motivi comuni, volevo utilizzare la traccia per la mia applicazione ASP.NET. Soprattutto da quando ho scoperto la possibilità di utilizzare lo strumento Service Trace Viewer che ti consente di esaminare le tue tracce in modo potente.Tracciati ASP.NET e System.Diagnostics: mi è sfuggito qualcosa o è una cattiva idea?
Poiché non avevo mai usato questa traccia prima, ho iniziato a studiarlo. Dopo un po 'di tempo su Google, SO e MSDN ho finalmente una buona idea di come funzionano le cose. Ma ho anche trovato una cosa molto distruttiva.
Quando si utilizza la traccia nelle applicazioni ASP.NET, ha molto senso raggruppare i messaggi di traccia insieme con le richieste Web. Soprattutto perché uno dei motivi per cui voglio usarlo è studiare i problemi di performance. Lo strumento sopra menzionato supporta anche questo utilizzando i tag <Corrleation>
nei file XML generati. Che a turno provengono da System.Diagnostics.Trace.CorrelationManager
. Permette anche altre interessanti funzionalità come l'avvio/l'arresto delle attività, che fornisce un gruppo ancora migliore di messaggi di traccia. Fantastico, giusto?
Anche se così tanto, fino a quando ho iniziato a controllare dove viveva lo . Dopotutto, era una proprietà statica. Dopo aver giocato con Reflector ho scoperto qualcosa di orribile: è memorizzato in CallContext
! Qual è il tipo di cosa we shouldn't be using in ASP.NET, giusto?
Quindi ... mi manca qualcosa qui? La traccia è davvero fondamentalmente difettosa in ASP.NET?
Aggiunto: Emm, sono quasi sul punto di riscrivere questa roba da solo. Voglio ancora usare lo strumento pulito per esplorare le tracce. Qualche ragione per cui non dovrei farlo? Forse c'è ancora qualcosa di meglio? Sarebbe davvero bello se ricevessi presto delle risposte. :)
Aggiunto 2: Un mio collega ha confermato che questo non è solo un problema teorico. Ha osservato questo nel sistema su cui sta lavorando. Quindi è sistemato. Costruirò un nuovo piccolo sistema che fa le cose proprio come voglio io. :)
Aggiunto 3: Wow, cool ... i ragazzi di Microsoft non hanno trovato nulla di sbagliato nell'usare Correlation Manager in ASP.NET. Quindi a quanto pare non abbiamo ancora una soluzione per questo errore ...
Bello. Non ho ancora trovato quell'articolo. In realtà, è praticamente impossibile per Google qualsiasi cosa sull'argomento. Strano che più persone non l'abbiano capito. –
Il collegamento al "sito di questo ragazzo" è stato modificato: http://sticklebackplastic.com/post/2007/08/14/One-mighty-gotcha-for-SystemDiagnostic-activity-Ids.aspx –
il collegamento è stato aggiornato, grazie Chris – regex