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.
Not
Üretim sunucularında sorunları tanılamak için önerilen yaklaşımlar için bkz . Dağıtımdan sonra sorunları tanılama.
Gereksinimler
.NET Framework 3.5 veya üzeri
.iTrace dosyalarını açmak için bir geliştirme bilgisayarında veya başka bir bilgisayarda Visual Studio Enterprise (Professional veya Community sürümleri değil)
Not
Simge (.pdb) dosyalarınızı kaydettiğinizden emin olun. 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.
SSS
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?
Toplayıcıyı yükleme
Uygulamanızın sunucusunda toplayıcı dizinini oluşturun, örneğin: C:\IntelliTraceCollector
Visual Studio yükleme klasöründen toplayıcıyı alın.
Toplayıcının yüklü olduğu klasörden IntelliTraceCollection.cab 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
IntelliTraceCollection.cab toplayıcı dizinine yerleştirin, örneğin: C:\IntelliTraceCollector
IntelliTraceCollection.cab genişlet:
Uygulamanızın sunucusunda yönetici olarak bir komut istemi penceresi açın.
Toplayıcı dizinine göz atın, örneğin: C:\IntelliTraceCollector
IntelliTraceCollection.cab genişletmek için sonundaki nokta (.) dahil olmak üzere expand komutunu kullanın:
expand /f:* IntelliTraceCollection.cab .
Not
Dönem (.), yerelleştirilmiş koleksiyon planları içeren alt klasörleri korur.
Toplayıcı dizini için izinleri ayarlama
Uygulamanızın sunucusunda yönetici olarak bir komut istemi penceresi açın.
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\AdministratorID>":F
Web uygulaması veya SharePoint uygulaması için veri toplamak için:
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
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
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.
IntelliTrace PowerShell cmdlet'lerini yükleyin.
Yönetici olarak bir PowerShell komut penceresi açın.
Başlat, Tüm Programlar, Aksesuarlar, Windows PowerShell'i seçin.
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.
PowerShell komut penceresinde, Microsoft.VisualStudio.IntelliTrace.PowerShell.dll 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
Uygulamanızın sunucusunda .iTrace dosya dizinini oluşturun, örneğin: C:\IntelliTraceLogFiles
Not
- 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.
- Uygulamanızı yavaşlatmamak için yerel yüksek hızlı diskte çok etkin olmayan bir konum seçin.
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:
.iTrace dosya dizini için Özellikler'i açın.
Güvenlik sekmesinde Düzenle, Ekle'yi seçin.
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.
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.
Seçecek nesne adlarını girin kutusuna Web uygulaması veya SharePoint uygulaması için uygulama havuzunu ekleyin.
Adı çözümlemek için Adları Denetle'yi seçin. Tamam'ı seçin.
Uygulama havuzunun Tam denetime sahip olduğundan emin olun.
Web uygulamasından veya SharePoint uygulamasından veri toplama
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"
Veri Akışı Adı Açıklama ApplicationPool Uygulamanızın çalıştırıldığı uygulama havuzunun adı PathToCollectionPlan Koleksiyon planının yolu, toplayıcı ayarlarını 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ınMaximumLogFileSize
ö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.
Sorunu yeniden oluşturun.
.iTrace dosyasının denetim noktasını oluşturmak için şu söz dizimini kullanın:
Checkpoint-IntelliTraceCollection
"
<ApplicationPool>"
Koleksiyon durumunu denetlemek için şu söz dizimlerini kullanın:
Get-IntelliTraceCollectionStatus
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.
Yönetilen bir uygulamadan veri toplama
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"
Veri Akışı 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ı ayarlarını 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ınMaximumLogFileSize
ö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ı Uygulamadan çıkararak veri toplamayı durdurun.
.iTrace dosyasını Visual Studio Enterprise'da açma
Not
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.
.iTrace dosyasını taşıyın veya Visual Studio Enterprise ile bir bilgisayara kopyalayın (Professional veya Community sürümleriyle değil).
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.
Not
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>
olarakfalse
ayarlayı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:
Koleksiyon planını açın.
<ModuleList>
öğesini bulun.içinde
<ModuleList>
özniteliğiniisExclusionList
olarakfalse
ayarlayın.<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
true
olarak ayarlayarakisExclusionList
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 nesnesioldemployee
kabul eden birAlterEmployee
Employee
yöntem imzanız olduğunu varsayalım:public Employee AlterEmployee(int id, Employee oldemployee)
türü
Employee
şu özniteliklere sahiptir:Id
,Name
veHomeAddress
. veAddress
türü arasındaEmployee
bir ilişkilendirme ilişkisi vardır.Toplayıcı, yönteminden döndürülen ,
Employee.Id
Employee.Name
ve nesnesininEmployee
AlterEmployee
değerleriniid
kaydeder. Ancak, toplayıcı nesne hakkındaAddress
null olup olmadığı dışında bilgi kaydetmez. Toplayıcı, diğer yöntemler bu yerel değişkenleri parametre olarak kullanmadığı sürece yöntemdekiAlterEmployee
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
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