Le temporizzazioni MiniProfiler sono memorizzate in HttpContext.Current
per impostazione predefinita (come è stato rilevato). Quindi se stai chiamando MiniProfiler da un posto dove HttpContxt.Current
è nullo, i risultati non possono essere salvati. La soluzione è salvare (e recuperare) i risultati da qualche altra parte.
MiniProfiler offre la possibilità di modificare la posizione in cui tutti i risultati devono essere memorizzati e recuperati da (utilizzando MiniProfiler.Settings.Storage
). Il new v3 MiniProfiler (beta nuget here) offre la possibilità di configurare diversi IStorage
per ogni richiesta e di utilizzare uno MultiStorageProvider
per designare più posizioni in cui i risultati possono essere memorizzati e recuperati. Puoi vedere un esempio di questo nel progetto Sample.Mvc su github.
Nel tuo caso, l'approccio migliore potrebbe essere quella di impostare un MultiStorageProvider
per il vostro globale MiniProfiler.Settings.Storage
che prima salvare/recuperare dal HttpRuntimeCacheStorage
e poi dopo utilizzerà qualche altro IStorage
che è accessibile dalla DelegatingHandler
. Quindi nello DelegatingHandler
, impostare MiniProfiler.Current.Storage
per utilizzare solo la seconda opzione di archiviazione impostata su MultiStorageProvider
(poiché è inutile cercare di salvare HttpCache). In questo modo, i profili da DelegatingHandler
verranno salvati nella seconda opzione di archiviazione e verranno recuperati per la visualizzazione con altri risultati (dal momento che MultiStorageProvider
corrisponderà ai risultati Load
dal primo luogo in cui li può ottenere, se non trova il risultato in HttpCache, si andrà alla seconda opzione
Nota -. avere più opzioni di storage è utile in questo caso, ma può avere un impatto negativo sulle prestazioni dei profili di recupero dei
fonte
2014-02-15 21:12:29
Forse questo risponde alla tua domanda.? [MvcMiniProfiler richiede un'applicazione Web per funzionare o può essere utilizzata in librerie pure, ad esempio nei test di unità?] [1] [1]: http://stackoverflow.com/questions/8526609/does-mvcminiprofiler-require-a-web-application-to-work-or-can-it-be-used-in- pur –