Share via


IntelliTrace tek başına toplayıcısını kullanma (C#, Visual Basic)

IntelliTrace tek başına toplayıcısı, hedef makineye Visual Studio yüklemeden ve hedef sistemin ortamını değiştirmeden üretim sunucularında veya diğer ortamlardaki uygulamalarınız için IntelliTrace tanılama verilerini toplamanıza olanak tanır. IntelliTrace tek başına toplayıcısı web, SharePoint, WPF ve Windows Forms uygulamalarında çalışır. Veri toplamayı bitirdiğinizde, kaldırmak için toplayıcıyı silmeniz gerekir.

Dekont

Üretim sunucularında sorunları tanılamak için önerilen yaklaşımlar için bkz . Dağıtımdan sonra sorunları tanılama.

Gereksinimler

Toplayıcı ile hangi uygulamalar çalışır?

  • ASP.NET Internet Information Services (IIS) sürüm 7.0, 7.5, 8.0, 12.0 ve 16.0'da barındırılan Web uygulamaları

  • SharePoint 2010 ve SharePoint 2013 uygulamaları

  • Windows Presentation Foundation (WPF) ve Windows Forms uygulamaları.

Nasıl kullanmaya başlayabilirim?

  1. Toplayıcıyı yükleme

  2. Toplayıcı dizini için izinleri ayarlama

  3. Web uygulamaları veya SharePoint uygulamaları için veri toplamak için IntelliTrace PowerShell cmdlet'lerini yükleme

  4. .iTrace dosya dizini için izinleri ayarlama

  5. Web uygulamasından veya SharePoint uygulamasından veri toplama

    -veya-

    Yönetilen bir uygulamadan veri toplama

  6. .iTrace dosyasını Visual Studio Enterprise'da açma

Toplayıcıyı yükleme

  1. Uygulamanızın sunucusunda toplayıcı dizinini oluşturun, örneğin: C:\IntelliTraceCollector

  2. Visual Studio yükleme klasöründen toplayıcıyı alın.

    1. IntelliTraceCollection.cab dosyasını toplayıcının yüklü olduğu klasörden kopyalayın, örneğin:

      .. \Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace

      veya Visual Studio'nun önceki sürümleri için:

      .. \Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\12.0.0

    2. IntelliTraceCollection.cab dosyasını toplayıcı dizinine yerleştirin, örneğin: C:\IntelliTraceCollector

  3. IntelliTraceCollection.cab dosyasını genişletin:

    1. Uygulamanızın sunucusunda yönetici olarak bir komut istemi penceresi açın.

    2. Toplayıcı dizinine göz atın, örneğin: C:\IntelliTraceCollector

    3. Sonundaki nokta (.) dahil olmak üzere expand komutunu kullanarak IntelliTraceCollection.cab dosyasını genişletin:

      expand /f:* IntelliTraceCollection.cab .

      Dekont

      Dönem (.), yerelleştirilmiş koleksiyon planları içeren alt klasörleri korur.

Toplayıcı dizini için izinleri ayarlama

  1. Uygulamanızın sunucusunda yönetici olarak bir komut istemi penceresi açın.

  2. Sunucu yöneticisine toplayıcı dizini için tam izinler vermek için Windows icacls komutunu kullanın. Örneğin:

    icacls "C:\IntelliTraceCollector" /grant "<Domain\Yönetici istratorID>":F

  3. Web uygulaması veya SharePoint uygulaması için veri toplamak için:

    1. IntelliTrace PowerShell cmdlet'lerini çalıştıracak kişiye toplayıcı dizini için tam izinler verin.

      Örneğin:

      icacls "C:\IntelliTraceCollector" /grant "<Etki Alanı\Kullanıcı Kimliği>":F

    2. Web uygulaması veya SharePoint uygulaması için uygulama havuzuna toplayıcı dizininde okuma ve yürütme izinleri verin.

      Örneğin:

      • DefaultAppPool uygulama havuzundaki bir Web uygulaması için:

        icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\DefaultAppPool":RX

      • SharePoint - 80 uygulama havuzundaki bir SharePoint uygulaması için:

        icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\SharePoint - 80":RX

Web uygulamaları veya SharePoint uygulamaları için veri toplamak için IntelliTrace PowerShell cmdlet'lerini yükleme

  1. Uygulamanızın sunucusunda PowerShell'in etkinleştirildiğinden emin olun. Windows Server'ın çoğu sürümünde, bu özelliği Sunucu Yöneticisi yönetim aracına ekleyebilirsiniz.

    Adding PowerShell by using Server Manager

  2. IntelliTrace PowerShell cmdlet'lerini yükleyin.

    1. Yönetici olarak bir PowerShell komut penceresi açın.

      1. Başlat, Tüm Programlar, Aksesuarlar, Windows PowerShell'i seçin.

      2. Aşağıdaki adımlardan birini seçin:

        • 64 bit işletim sistemlerinde Windows PowerShell kısayol menüsünü açın. Yönetici olarak çalıştır'ı seçin.

        • 32 bit işletim sistemlerinde Windows PowerShell (x86) kısayol menüsünü açın. Yönetici olarak çalıştır'ı seçin.

    2. PowerShell komut penceresinde, Microsoft.VisualStudio.IntelliTrace.PowerShell.dll dosyasını içeri aktarmak için Import-Module komutunu kullanın.

      Örneğin:

      Import-Module "C:\IntelliTraceCollector\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll"

.iTrace dosya dizini için izinleri ayarlama

  1. Uygulamanızın sunucusunda .iTrace dosya dizinini oluşturun, örneğin: C:\IntelliTraceLogFiles

    Dekont

    • Uygulamanızı yavaşlatmamak için yerel yüksek hızlı diskte çok etkin olmayan bir konum seçin.
      • .iTrace dosyalarını ve toplayıcı dosyalarını aynı yere koyabilirsiniz. Ancak, bir Web uygulamanız veya SharePoint uygulamanız varsa, bu yerin uygulamayı barındıran dizinin dışında olduğundan emin olun.

    Önemli

    • .iTrace dosya dizinini yalnızca toplayıcıyla çalışması gereken kimliklerle kısıtlayın. IntelliTrace yöntem parametrelerine veya dönüş değerleri olarak geçen tüm verileri kaydedebildiğinden, .iTrace dosyası kullanıcılardan, veritabanlarından, diğer kaynak konumlardan ve bağlantı dizesi verileri gibi hassas bilgiler içerebilir.
      • .iTrace dosyalarını açabilenlerin hassas verileri görüntüleme yetkisine sahip olduğundan emin olun. .iTrace dosyalarını paylaşırken dikkatli olun. Diğer kişilerin erişimi olması gerekiyorsa, dosyaları güvenli bir paylaşılan konuma kopyalayın.
  2. Bir Web uygulaması veya SharePoint uygulaması için uygulama havuzuna .iTrace dosya dizini için tam izinler verin. Windows icacls komutunu veya Windows Gezgini'ni (veya Dosya Gezgini) kullanabilirsiniz.

    Örneğin:

    • Windows icacls komutuyla izinleri ayarlamak için:

      • DefaultAppPool uygulama havuzundaki bir Web uygulaması için:

        icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\DefaultAppPool":F

      • SharePoint - 80 uygulama havuzundaki bir SharePoint uygulaması için:

        icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\SharePoint - 80":F

        -veya-

    • Windows Gezgini (veya Dosya Gezgini) ile izinleri ayarlamak için:

      1. .iTrace dosya dizini için Özellikler'i açın.

      2. Güvenlik sekmesinde Düzenle, Ekle'yi seçin.

      3. Bu nesne türünü seçin kutusunda Yerleşik güvenlik sorumlularının göründüğünden emin olun. Yoksa, eklemek için Nesne Türleri'ni seçin.

      4. Yerel bilgisayarınızın Bu konumdan kutusunda göründüğünden emin olun. Orada değilse, değiştirmek için Konumlar'ı seçin.

      5. Seçecek nesne adlarını girin kutusuna Web uygulaması veya SharePoint uygulaması için uygulama havuzunu ekleyin.

      6. Adı çözümlemek için Adları Denetle'yi seçin. Tamam'ı seçin.

      7. Uygulama havuzunun Tam denetime sahip olduğundan emin olun.

Web uygulamasından veya SharePoint uygulamasından veri toplama

  1. Veri toplamaya başlamak için yönetici olarak bir PowerShell komut penceresi açın ve şu komutu çalıştırın:

    Start-IntelliTraceCollection"<ApplicationPool><"PathToCollectionPlan><FullPathToITraceFileDirectory>

    Önemli

    Bu komutu çalıştırdıktan sonra, veri toplamaya başlamak istediğinizi onaylamak için Y yazın.

    Örneğin, SharePoint - 80 uygulama havuzundaki bir SharePoint uygulamasından veri toplamak için:

    Start-IntelliTraceCollection "SharePoint - 80" "C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" "C:\IntelliTraceLogFiles"

    Adı Açıklama
    ApplicationPool Uygulamanızın çalıştırıldığı uygulama havuzunun adı
    PathToCollectionPlan Koleksiyon planının yolu, toplayıcı için ayarları yapılandıran bir .xml dosyası.

    Toplayıcıyla birlikte gelen bir plan belirtebilirsiniz. Aşağıdaki planlar Web uygulamaları ve SharePoint uygulamaları için çalışır:

    - collection_plan. ASP. NET.default.xml
    Özel durumlar, veritabanı çağrıları ve Web sunucusu istekleri dahil olmak üzere yalnızca IntelliTrace olaylarını ve SharePoint olaylarını toplar.
    - collection_plan. ASP. NET.trace.xml
    collection_plan işlev çağrılarını ve tüm verileri toplar. ASP. NET.default.xml. Bu plan ayrıntılı analiz için iyidir, ancak uygulamanızı collection_plan daha fazla yavaşlatabilir. ASP. NET.default.xml.

    Uygulamanızı yavaşlatmamak için bu planları özelleştirin veya kendi planınızı oluşturun. Güvenlik için, özel planları toplayıcı dosyalarıyla aynı güvenli konuma yerleştirin. Bkz. IntelliTrace Koleksiyon Planlarını Oluşturma ve Özelleştirme ve Nasıl yaparım? uygulamamı yavaşlatmadan en çok veriyi almak mı?Not: Varsayılan olarak, .iTrace dosyasının en büyük boyutu 100 MB'tır. .iTrace dosyası bu sınıra ulaştığında, toplayıcı daha yeni girdilere yer açmak için dosyanın en eski girdilerini siler. Bu sınırı değiştirmek için koleksiyon planının MaximumLogFileSize özniteliğini düzenleyin.

    Bu koleksiyon planlarının yerelleştirilmiş sürümlerini nerede bulabilirim?

    Yerelleştirilmiş planları toplayıcının alt klasörlerinde bulabilirsiniz.
    FullPathToITraceFileDirectory .iTrace dosya dizininin tam yolu. Güvenlik Notu: Göreli yolu değil tam yolu belirtin.

    Toplayıcı uygulama havuzuna eklenir ve veri toplamaya başlar.

    .iTrace dosyasını şu anda açabilir miyim? Hayır, dosya veri toplama sırasında kilitlenir.

  2. Sorunu yeniden oluşturun.

  3. .iTrace dosyasının denetim noktasını oluşturmak için şu söz dizimini kullanın:

    Checkpoint-IntelliTraceCollection"<ApplicationPool>"

  4. Koleksiyon durumunu denetlemek için şu söz dizimlerini kullanın:

    Get-IntelliTraceCollectionStatus

  5. Veri toplamayı durdurmak için şu söz dizimlerini kullanın:

    Stop-IntelliTraceCollection"<ApplicationPool>"

    Önemli

    Bu komutu çalıştırdıktan sonra, veri toplamayı durdurmak istediğinizi onaylamak için Y yazın. Aksi takdirde, toplayıcı veri toplamaya devam edebilir, iTrace dosyası kilitli kalabilir veya dosya yararlı veriler içermeyebilir.

  6. .iTrace dosyasını Visual Studio Enterprise'da açma

Yönetilen bir uygulamadan veri toplama

  1. Uygulamanızı başlatmak ve aynı anda veri toplamak için şu söz dizimini kullanın:

    <FullPathToIntelliTraceCollectorExecutable><\IntelliTraceSC.exe launch /cp:PathToCollectionPlan></f:FullPathToITraceFileDirectoryAndFileName><PathToAppExecutableFileAndFileName>

    Örneğin, MyApp adlı bir uygulamadan veri toplamak için:

    C:IntelliTraceCollectorIntelliTraceSC.exe launch /cp:"C:IntelliTraceCollectorcollection_plan.ASP.NET.default.xml" /f:"C:IntelliTraceLogFilesMyApp.itrace" "C:MyAppMyApp.exe"

    Adı Açıklama
    FullPathToIntelliTraceCollectorExecutable Toplayıcı yürütülebilir dosyasının tam yolu, IntelliTraceSC.exe
    PathToCollectionPlan Koleksiyon planının yolu, toplayıcı için ayarları yapılandıran bir .xml dosyası.

    Toplayıcıyla birlikte gelen bir plan belirtebilirsiniz. Yönetilen uygulamalar için aşağıdaki planlar çalışır:

    - collection_plan. ASP. NET.default.xml
    Özel durumlar, veritabanı çağrıları ve Web sunucusu istekleri dahil olmak üzere yalnızca IntelliTrace olaylarını toplar.
    - collection_plan. ASP. NET.trace.xml
    collection_plan işlev çağrılarını ve tüm verileri toplar. ASP. NET.default.xml. Bu plan ayrıntılı analiz için iyidir, ancak uygulamanızı collection_plan daha fazla yavaşlatabilir. ASP. NET.default.xml.

    Uygulamanızı yavaşlatmamak için bu planları özelleştirin veya kendi planınızı oluşturun. Güvenlik için, özel planları toplayıcı dosyalarıyla aynı güvenli konuma yerleştirin. Bkz. IntelliTrace Koleksiyon Planlarını Oluşturma ve Özelleştirme ve Nasıl yaparım? uygulamamı yavaşlatmadan en çok veriyi almak mı?Not: Varsayılan olarak, .iTrace dosyasının en büyük boyutu 100 MB'tır. .iTrace dosyası bu sınıra ulaştığında, toplayıcı daha yeni girdilere yer açmak için dosyanın en eski girdilerini siler. Bu sınırı değiştirmek için koleksiyon planının MaximumLogFileSize özniteliğini düzenleyin.

    Bu koleksiyon planlarının yerelleştirilmiş sürümlerini nerede bulabilirim?

    Yerelleştirilmiş planları toplayıcının alt klasörlerinde bulabilirsiniz.
    FullPathToITraceFileDirectoryAndFileName .iTrace dosya dizininin tam yolu ve .itrace uzantısıyla .iTrace dosya adı. Güvenlik Notu: Göreli yolu değil tam yolu belirtin.
    PathToAppExecutableFileAndFileName Yönetilen uygulamanızın yolu ve dosya adı
  2. Uygulamadan çıkararak veri toplamayı durdurun.

  3. .iTrace dosyasını Visual Studio Enterprise'da açma

.iTrace dosyasını Visual Studio Enterprise'da açma

Dekont

IntelliTrace ile hata ayıklamak ve kodda adım adım ilerleyebilmek için eşleşen kaynak dosyalarına ve sembol dosyalarına sahip olmanız gerekir. Bkz. Dağıtımdan sonra sorunları tanılama.

  1. .iTrace dosyasını taşıyın veya Visual Studio Enterprise ile bir bilgisayara kopyalayın (Professional veya Community sürümleriyle değil).

  2. Visual Studio dışındaki .iTrace dosyasına çift tıklayın veya dosyayı Visual Studio'dan açın.

    Visual Studio, IntelliTrace Özeti sayfasını gösterir. Çoğu bölümde, olayları veya diğer öğeleri gözden geçirebilir, bir öğe seçebilir ve bir olayın gerçekleştiği noktada IntelliTrace ile hata ayıklamaya başlayabilirsiniz. Bkz. Kaydedilmiş IntelliTrace verilerini kullanma.

    Dekont

    IntelliTrace ile hata ayıklamak ve kodda adım adım ilerleyebilmek için, geliştirme makinenizde eşleşen kaynak dosyalara ve sembol dosyalarına sahip olmanız gerekir. Bkz. Dağıtımdan sonra sorunları tanılama.

Uygulamamı yavaşlatmadan en çok veriyi Nasıl yaparım? edinebilirsiniz?

IntelliTrace çok sayıda veri toplayabilir, bu nedenle uygulamanızın performansı üzerindeki etkisi IntelliTrace'in topladığı verilere ve analiz yaptığı kod türüne bağlıdır. Bkz . Üretim Sunucularında IntelliTrace Koleksiyonunu İyi hale getirme.

Uygulamanızı yavaşlatmadan en fazla veriyi almanın bazı yolları şunlardır:

  • Toplayıcıyı yalnızca bir sorun olduğunu düşündüğünüzde veya sorunu yeniden oluşturabileceğinizde çalıştırın.

    Koleksiyonu başlatın, sorunu yeniden oluşturun ve koleksiyonu durdurun. .iTrace dosyasını Visual Studio Enterprise'da açın ve verileri inceleyin. Bkz . Visual Studio Enterprise'da .iTrace dosyasını açma.

  • Web uygulamaları ve SharePoint uygulamaları için toplayıcı, belirtilen uygulama havuzunu paylaşan her uygulamanın verilerini kaydeder. Bu, aynı uygulama havuzunu paylaşan tüm uygulamaları yavaşlatabilir, ancak koleksiyon planında yalnızca tek bir uygulama için modüller belirtebilirsiniz.

    Toplayıcının diğer uygulamaları yavaşlatmasını önlemek için her uygulamayı kendi uygulama havuzunda barındırın.

  • IntelliTrace'in veri topladığı koleksiyon planındaki olayları gözden geçirin. İlginizi çekmeyecek veya ilginizi çekmeyecek olayları devre dışı bırakmak için koleksiyon planını düzenleyin.

    Bir olayı devre dışı bırakmak için öğesinin enabled özniteliğini <DiagnosticEventSpecification> olarak falseayarlayın:

    <DiagnosticEventSpecification enabled="false">

    enabled Öznitelik yoksa, olay etkinleştirilir.

    Bu, performansı nasıl geliştirir?

    • Uygulamayla ilgili olmayan olayları devre dışı bırakarak başlangıç süresini kısaltabilirsiniz. Örneğin, Windows İş Akışı kullanmayan uygulamalar için Windows İş Akışı olaylarını devre dışı bırakın.

    • Kayıt defterine erişen ancak kayıt defteri ayarlarıyla ilgili sorunları göstermeyen uygulamalar için kayıt defteri olaylarını devre dışı bırakarak hem başlatma hem de çalışma zamanı performansını geliştirebilirsiniz.

  • IntelliTrace'in veri topladığı koleksiyon planındaki modülleri gözden geçirin. Koleksiyon planını yalnızca ilginizi çekebilecek modülleri içerecek şekilde düzenleyin:

    1. Koleksiyon planını açın. <ModuleList> öğesini bulun.

    2. içinde <ModuleList>özniteliğini isExclusionList olarak falseayarlayın.

    3. <Name> öğesini kullanarak her modülü aşağıdakilerden biriyle belirtin: dosya adı, adı bu dizeyi içeren herhangi bir modülü eklemek için dize değeri veya ortak anahtar.

      Örneğin, Fabrikam Fiber Web uygulamasının yalnızca ana Web modülünden veri toplamak için aşağıdakine benzer bir liste oluşturun:

    <ModuleList isExclusionList="false">
       <Name>FabrikamFiber.Web.dll</Name>
    </ModuleList>
    

    Adında "Fabrikam" bulunan herhangi bir modülden veri toplamak için aşağıdakine benzer bir liste oluşturun:

    <ModuleList isExclusionList="false">
       <Name>Fabrikam</Name>
    </ModuleList>
    

    Ortak anahtar belirteçlerini belirterek modüllerden veri toplamak için aşağıdakine benzer bir liste oluşturun:

    <ModuleList isExclusionList="false">
       <Name>PublicKeyToken:B77A5C561934E089</Name>
       <Name>PublicKeyToken:B03F5F7F11D50A3A</Name>
       <Name>PublicKeyToken:31BF3856AD364E35</Name>
       <Name>PublicKeyToken:89845DCD8080CC91</Name>
       <Name>PublicKeyToken:71E9BCE111E9429C</Name>
    </ModuleList>
    

    Bu, performansı nasıl geliştirir?

    Bu, uygulama başlatıldığında ve çalıştığında IntelliTrace'in topladığı yöntem çağrı bilgileri ve diğer izleme verilerinin miktarını azaltır. Bu veriler şunları yapmanızı sağlar:

    • Verileri topladıktan sonra kodda adım adım ilerleyin.

    • İşlev çağrılarına geçirilen ve işlev çağrılarından döndürülen değerleri inceleyin.

      Bunun yerine neden modülleri hariç tutmuyorsunuz?

      Varsayılan olarak, koleksiyon planları özniteliğini trueolarak ayarlayarak isExclusionList modülleri dışlar. Ancak modüllerin dışlanması yine de listenin ölçütlerine uymayan modüllerden veri toplamaya neden olabilir ve üçüncü taraf veya açık kaynak modüller gibi ilginizi çekmeyebilir.

  • IntelliTrace'in toplamadığı herhangi bir veri var mı?

    Evet, performans etkisini azaltmak için IntelliTrace, veri toplamayı yöntemlere geçirilen ve yöntemlerden döndürülen ilkel veri türlerinin değerleriyle ve yöntemlere geçirilen ve yöntemlerden döndürülen üst düzey nesnelerdeki alanlardaki temel veri türlerinin değerleriyle kısıtlar.

    Örneğin, bir tamsayı id ve nesnesi oldemployeekabul eden bir AlterEmployeeEmployee yöntem imzanız olduğunu varsayalım:

    public Employee AlterEmployee(int id, Employee oldemployee)

    türü Employee şu özniteliklere sahiptir: Id, Nameve HomeAddress. ve Address türü arasında Employee bir ilişkilendirme ilişkisi vardır.

    Relationship between Employee and Address

    Toplayıcı, yönteminden döndürülen , Employee.IdEmployee.Name ve nesnesinin EmployeeAlterEmployee değerlerini idkaydeder. Ancak, toplayıcı nesne hakkında Address null olup olmadığı dışında bilgi kaydetmez. Toplayıcı, diğer yöntemler bu yerel değişkenleri parametre olarak kullanmadığı sürece yöntemdeki AlterEmployee yerel değişkenlerle ilgili verileri de kaydetmez.

IntelliTrace verilerini başka nereden alabilirim?

Visual Studio Enterprise'daki bir IntelliTrace hata ayıklama oturumundan IntelliTrace verileri alabilirsiniz. Bkz. IntelliTrace Özellikleri.

Daha fazla bilgiyi nereden edinebilirim?

Kayıtlı IntelliTrace verilerini kullanma

IntelliTrace

Bloglar

IntelliTrace Tek Başına Toplayıcısını Uzaktan Kullanma

IntelliTrace Koleksiyon Planlarını Oluşturma ve Özelleştirme

Üretim Sunucularında IntelliTrace Koleksiyonunu İyi hale getirme

Microsoft DevOps

Forumlar

Visual Studio Hata Ayıklayıcısı