2011-07-11 23 views
28

Sadece mvc-mini-profiler (http://code.google.com/p/mvc-mini-profiler/) kullanmaya başladım ve harika olduğunu düşünüyorum. Ancak, kullanırken bazı garip davranışlar alıyorum.Mini MVC profiler: Her statik kaynak için profil zamanları görüntüleniyor gibi görünüyor

IIS7.5'te çalışan bir ASP.NET Web formları sitem var ve bir profil yüklendiğinde, aspiler sayfası için yalnızca bir zaman ölçümü almıyorum, aynı zamanda aldım. sayfadaki rastgele css ve js kaynakları için.

ASPX profili, SQL sorgusu doğru şekilde profillenmiş olarak doğru şekilde çalışır. Ancak, resimdeki gibi, statik CSS ve JS dosyaları için sonuçlar gibi görünen bir sürü sonuç elde ediyorum. Anlayabildiğim kadarıyla, bunlar statik olarak IIS tarafından sunulmakta, dolayısıyla profiler kodu bunlara da çağrılmamalıdır.

benim Global.asax ilgili kısımları şunlardır:

protected void Application_BeginRequest() 
    { 
     MiniProfiler profiler = null; 

     // might want to decide here (or maybe inside the action) whether you want 
     // to profile this request - for example, using an "IsSystemAdmin" flag against 
     // the user, or similar; this could also all be done in action filters, but this 
     // is simple and practical; just return null for most users. For our test, we'll 
     // profile only for local requests (seems reasonable) 
     profiler = MiniProfiler.Start(); 

     using (profiler.Step("Application_BeginRequest")) 
     { 
      // you can start profiling your code immediately 
     } 
    } 

    protected void Application_EndRequest() 
    { 
     MvcMiniProfiler.MiniProfiler.Stop(); 
    } 

    protected void Application_AuthenticateRequest(object sender, EventArgs e) 
    { 
     if (User == null || !User.Identity.IsAuthenticated) 
     { 
      MvcMiniProfiler.MiniProfiler.Stop(true); 
     } 
    } 

bu davranış bekleniyor mu?

cevap

45

Evet, bu doğru ama filtrelemek çok kolay. Projenin Bu görmek istediğiniz ya da olmasın, bu i bulma duyuyorum benim web uygulaması hariç tuttuğunuz şeyin bir örneği ne olduğunu filtreler kullanın Source

void Application_Start(object sender, EventArgs e) 
{ 
    // Code that runs on application startup 

    // some things should never be seen 
    var ignored = MiniProfiler.Settings.IgnoredPaths.ToList(); 

    ignored.Add("WebResource.axd"); 
    ignored.Add("/Styles/"); 

    MiniProfiler.Settings.IgnoredPaths = ignored.ToArray(); 
} 

örnek koddan Alınan

Uygulamam için çalışma

ignored.Add("WebResource.axd"); 
ignored.Add("ScriptResource.axd"); 
ignored.Add("/Styles/"); 
ignored.Add("/Images/"); 
ignored.Add(".js"); 
+0

Ben Profilcinin benim sürümünü güncellemek zorunda kaldı, ama bu çalışmış olmak .... i son koduyla fark bir şey olduğunu – growse

+0

ve bırakılmış bazı hata ayıklama kodu vardır görünür IE ile bazı sorunlara neden olur. Ben konu tracker Sayı 53 –

+0

üzerinde bir sorun kaydettim Bir gözümüzü tutacağım - teşekkürler. Tüm devlerimiz Chrome/FF'de, bu yüzden endişelenmiyorum. – growse

1

Bunu aslında bir satıra yerleştirebilir ve eğik çizgileri çıkartabilirsiniz. Şunun gibi:

protected void Application_BeginRequest() 
    { 
     if (Request.IsLocal) 
     { 
      MiniProfiler.Start(); 
      MiniProfiler.Settings.IgnoredPaths = new[] { "static", "webresource.axd", "styles", "images" }; 
     } 
    } 
İlgili konular