Tek Başına Toplayıcı ile Visual Studio'nun Dışında IntelliTrace Verilerini Toplama
Uygulamalarda üretim ya da diğer ortamlarda hata ayıklamak için, IntelliTrace toplayıcı kullanarak tanı verisini bir IntelliTrace kayıt dosyasına (.iTrace dosyası) kaydedin. Bu uygulamanızda ne olduğunu Visual Studio yüklemeden ya da uygulamanızın ortamını değiştirmeden kaydetmenizi sağlar. Veri toplama işiniz bittiğinde kaldırmak için toplayıcıyı silmeniz yeterlidir.
IntelliTrace'i çalışırken izleyebilirsiniz: Hata ayıklama için üretimde IntelliTrace verilerini toplama ve çözümleme (Kanal 9 video)
Gereksinimler
.NET Framework 3.5, 4 veya 4.5
.iTrace dosyalarını açmak için bir geliştirme bilgisayarı ya da diğer bilgisayar üzerinde Visual Studio Ultimate
Not
Sembol dosyalarınızı (.pdb) kaydetmeyi unutmayın.IntelliTrace ile hata ayıklamak ve kodunuz içinde adım adım ilerlemek için, eşleşen kaynak dosyaları ve sembol dosyalarınız olmalıdır.Bkz: Simge (.pdb), Kaynak ve İkili Dosyaları Bulma
SIK SORULAN SORULAR
Hangi uygulamalar toplayıcı ile çalışıyor?
Nasıl başlayabilirim?
Uygulamamı yavaşlatmadan en çok veriyi nasıl alabilirim?
IntelliTrace verisini başka nereden alabilirim?
Hangi uygulamalar toplayıcı ile çalışıyor?
Internet Information Services (IIS) 7.0, 7.5 ve 8.0 sürümü üzerinde barındırılan ASP.NET Web uygulamaları
SharePoint 2010 uygulamaları
Yönetilen masaüstü uygulamaları (.exe dosyaları)
Nasıl başlayabilirim?
Toplayıcı yükleyin
Set up permissions for the collector directory.
Web uygulamaları ya da SharePoint uygulamaları için veri toplamak için IntelliTrace PowerShell cmdlet'lerini yükleyin
.iTrace dosya dizini için izinleri ayarlayın
Bir Web uygulaması ya da SharePoint uygulamasından veri toplayın
-veya-
Yönetilen bir uygulamadan veri toplama
Visual Studio Ultimate içinde .iTrace dosyasını açın
Toplayıcı yükleyin
Uygulamanızın sunucusunda, toplayıcı klasörünü oluşturun, örneğin: C:\IntelliTraceCollector
Toplayıcıyı Microsoft İndirme Merkezi ya da Visual Studio yükleme klasöründen alın:
Microsoft İndirme Merkezi.
Uygulamanızın sunucusunda, Visual Studio için IntelliTrace Collector sayfasına gidin.
IntelliTraceCollector.exe yanında, İndir seçeneğini seçin.
IntelliTraceCollector.exe dosyasını toplayıcı dizinine kaydedin, örneğin: C:\IntelliTraceCollector
IntelliTraceCollector.exe'yi çalıştırın. Bu IntelliTraceCollection.cab dosyasını çıkartır.
- veya -
Visual Studio yükleme klasörü:
Not
SharePoint 2010 uygulamaları için tanılama olaylarını destekleyen toplayıcıyı almak için, Visual Studio için IntelliTrace Collector indirin ya da Visual Studio 2012.1 yüklü olduğundan emin olun.
IntelliTraceCollection.cab dosyasını aşağıdaki klasörden kopyalayın:
.. \Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\11.0.0
IntelliTraceCollection.cab dosyasını toplayıcı dizinine yerleştirin, örneğin: C:\IntelliTraceCollector
IntelliTraceCollection.cab dosyasını genişletin:
Uygulamanızın sunucusunda, yönetici olarak bir komut istemi penceresi açın.
Toplayıcı dizinini açın, örneğin: C:\IntelliTraceCollector
IntelliTraceCollection.cab dosyasını genişletmek için, expand komutunu kullanın, sondaki nokta (.) dahil:
/f:* IntelliTraceCollection.cab'ı genişletin.
Not
Nokta (.) yerelleştirilmiş toplama planlarını 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 yetki vermek için Windows icacls komutunu kullanın. Örne?in:
icacls "C:\IntelliTraceCollector" /grant " <Domain\AdministartorID> ":F
Bir Web uygulaması ya da SharePoint uygulaması için veri toplamak için:
IntelliTrace PowerShell cmdlet'lerini çalıştıracak kişiye toplayıcı dizini için tam yetki verin.
Örne?in:
icacls "C:\IntelliTraceCollector" /grant " <Domain\UserID> ":F
Web uygulaması ya da SharePoint uygulaması için uygulama havuzuna toplayıcı dizini için okuma ve yürütme izinleri verin.
Örne?in:
DefaultAppPool uygulama havuzu içindeki bir Web uygulaması için:
icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\DefaultAppPool":RX
SharePoint - 80 uygulama havuzu içindeki bir SharePoint uygulaması için:
icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\SharePoint - 80":RX
Web uygulamaları ya da SharePoint uygulamaları için veri toplamak için IntelliTrace PowerShell cmdlet'lerini yükleyin
Uygulamanızın sunucusunda, PowerShell'in etkin olduğundan emin olun. Çoğu Windows Server sürümünde Sunucu Yöneticisi yönetim aracını kullanarak bu özelliği ekleyebilirsiniz.
IntelliTrace PowerShell cmdlet'lerini yükleyin.
Yönetici olarak bir PowerShell komut penceresi açın.
Başlat, Tüm Programlar, Donatılar, Windows PowerShell seçin.
Aşağıdaki adımlardan birini seçin:
64-bit işletim sistemlerinde, Windows PowerShell için kısayol menüsünü açın. Yönetici olarak çalıştır seçeneğini belirleyin.
32-bit işletim sistemlerinde, Windows PowerShell (x86) için kısayol menüsünü açın. Yönetici olarak çalıştır seçeneğini belirleyin.
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 ayarlayın
Uygulamanızın sunucusunda, .iTrace dosya dizinini oluşturun, örneğin: C:\IntelliTraceLogFiles
Not
-
Uygulamanızı yavaşlatmayı engellemek için, aktif olmayan yerel bir yüksek hızlı disk üzerinde bir konum seçin.
-
.iTrace dosyalarını ve toplayıcı dosyalarını aynı yere koyabilirsiniz.Ancak, eğer bir Web uygulamanız ya da SharePoint uygulamanız varsa, buranın uygulamayı barındıran dizin dışında olduğundan emin olun.
Güvenlik Notu .iTrace dosya dizinini yalnızca toplayıcıyla çalışması gereken kimliklerle kısıtlayın.Bir .iTrace dosyası kullanıcılar, veritabanları, diğer kaynak konumları ve bağlantı dizeleri gibi hassas bilgiler içerebilir, çünkü IntelliTrace method parametrelerine gönderilen ya da dönüş değeri olarak gelen her veriyi kaydedebilir.
.iTrace dosyalarını açabilen kişilerin hassas verileri görüntüleyebilecek yetkiye sahip olduklarından emin olun..iTrace dosyaları paylaşırken dikkatli olun.Diğer kişilerin erişim gereksinimi olduğunda dosyaları paylaşılan güvenli bir konuma kopyalayın.
-
Bir Web uygulaması yada SharePoint uygulaması için, uygulama havuzlarına .iTrace dosya dizini için tam yetki verin. Windows icacls komutunu ya da Windows Explorer'ı (ya da File Explorer) kullanabilirsiniz.
Örne?in:
Windows icacls komutu ile izinleri ayarlamak için:
DefaultAppPool uygulama havuzu içindeki bir Web uygulaması için:
icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\DefaultAppPool":F
SharePoint - 80 uygulama havuzu içindeki bir SharePoint uygulaması için:
icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\SharePoint - 80":F
-veya-
Windows Explorer (ya da File Explorer) ile izinleri ayarlamak için:
.iTrace dosya dizini için Özellikler seçeneğini açın.
Güvenlik sekmesinde, Düzenle, Ekle seçeneklerini seçin.
Bu nesne türünü seç kutusu içinde, Yerleşik güvenlik esasları göründüğünden emin olun. Eğer orada değilse, eklemek için Nesne Türleri seçin.
Bu konumdan kutusu içinde yerel bilgisayarınızın göründüğünden emin olun. Eğer orada değilse, değiştirmek için Konumlar seçin.
Seçmek için nesne adlarını girin kutusunda, Web uygulaması ya da SharePoint uygulaması için uygulama havuzunu ekleyin.
Adı çözmek için Adları Denetle seçin. Tamam'ı seçin.
Uygulama havuzunun Tam denetim yetkisine sahip olduğundan emin olun.
Bir Web uygulaması ya da SharePoint uygulamasından veri toplayın
Veri toplamaya başlamak için, yönetici olarak bir PowerShell komut penceresi açın ve bu komutu çalıştırın:
Başlangıç 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"
ApplicationPool
Uygulamanızın çalıştığı uygulama havuzunun adı
PathToCollectionPlan
Toplayıcı için ayarları yapılandıran bir .xml dosyası olan koleksiyon planının yolu.
Toplayıcı ile birlikte gelen bir planı belirtebilirsiniz. Aşağıdaki planlar Web uygulamaları ve SharePoint uygulamaları için çalışır:
collection_plan.ASP.NET.default.xml
Yalnızca IntelliTrace olaylarını ve SharePoint olaylarını toplar; özel durumlar, veritabanı çağrıları ve Web sunucusu istekleri dahil.
collection_plan.ASP.NET.trace.xml
İşlev çağrılarını ve collection_plan.ASP.NET.default.xml içindeki tüm verileri toplar. Bu plan detaylı çözümleme için iyidir, ama uygulamanızı collection_plan.ASP.NET.default.xml planından daha çok yavaşlatabilir.
Uygulamanızı yavaşlatmayı önlemek için, bu planları özelleştirin ya da kendi planınızı oluşturun. Güvenlik için her bir özel planı toplayıcı dosyaları ile aynı güvenli konuma yerleştirin. Bkz: IntelliTrace Koleksiyon Planlarını Oluşturma ve Özelleştirme veUygulamamı yavaşlatmadan en çok veriyi nasıl alabilirim?
NotVarsayılan olarak, .iTrace dosyasının en büyük boyutu 100 MB'dir..iTrace dosyasının boyutu bu sınıra ulaştığında, toplayıcı dosyadaki en eski girdileri silerek yeni girişler için boş alan oluşturur.Bu sınırı değiştirmek için, koleksiyon planının MaximumLogFileSize özniteliğini değiştirin.Bu koleksiyon planlarının yerelleştirilmiş sürümlerini nereden bulabilirim?
Yerelleştirilmiş planları toplayıcının yükleme alt klasörlerinde bulabilirsiniz.
FullPathToITraceFileDirectory
.iTrace dosya dizininin tam yolu.
Güvenlik NotuGöreli yol değil, tam yolu sağlayın.Toplayıcı uygulama havuzuna bağlanır ve veri toplamaya başlar.
Şu anda .iTrace dosyasını açabilir miyim? Hayır, veri toplama sırasında dosya kilitlidir.
Sorunu yeniden oluşturma.
.iTrace dosyasının bir anlık görüntüsünü almak için, bu sözdizimini kullanın:
Checkpoint-IntelliTraceCollection "<ApplicationPool>"
Toplama durumunu denetlemek için, bu sözdizimini kullanın:
Get-IntelliTraceCollectionStatus
Veri toplamayı durdurmak için şu sözdizimini 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 halde, toplayıcı veri toplamaya devam edebilir, iTrace dosyası kilitli kalır, ya da dosya herhangi bir işe yarar veri içermeyebilir.
Visual Studio Ultimate içinde .iTrace dosyasını açın
Yönetilen bir uygulamadan veri toplama
Aynı anda hem uygulamanızı hem de veri toplamayı başlatmak için, bu sözdizimini kullanın:
<FullPathToIntelliTraceCollectorExecutable> \IntellitraceSC.exe launch /cp: <PathToCollectionPlan> /f:<FullPathToITraceFileDirectoryAndFileName> <PathToAppExecutableFileAndFileName>
Örneğin, MyApp adında bir uygulamadan veri toplamak için:
C:\IntelliTraceCollector\IntelliTraceSC.exe launch /cp:"C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" /f:"C:\IntelliTraceLogFiles\MyApp.itrace" "C:\MyApp\MyApp.exe"
FullPathToIntelliTraceCollectorExecutable
Toplayıcı yürütülebilirinin, IntelliTraceSC.exe, tam yolu.
PathToCollectionPlan
Toplayıcı için ayarları yapılandıran bir .xml dosyası olan koleksiyon planının yolu.
Toplayıcı ile birlikte gelen bir planı belirtebilirsiniz. Aşağıdaki planlar yönetilen uygulamalar için çalışır:
collection_plan.ASP.NET.default.xml
Sadece IntelliTrace olaylarını toplar; özel durumlar, veritabanı çağrıları ve Web sunucusu istekleri dahil.
collection_plan.ASP.NET.trace.xml
İşlev çağrılarını ve collection_plan.ASP.NET.default.xml içindeki tüm verileri toplar. Bu plan detaylı çözümleme için iyidir, ama uygulamanızı collection_plan.ASP.NET.default.xml planından daha çok yavaşlatabilir.
Uygulamanızı yavaşlatmayı önlemek için, bu planları özelleştirin ya da kendi planınızı oluşturun. Güvenlik için her bir özel planı toplayıcı dosyaları ile aynı güvenli konuma yerleştirin. Bkz: IntelliTrace Koleksiyon Planlarını Oluşturma ve Özelleştirme veUygulamamı yavaşlatmadan en çok veriyi nasıl alabilirim?
NotVarsayılan olarak, .iTrace dosyasının en büyük boyutu 100 MB'dir..iTrace dosyasının boyutu bu sınıra ulaştığında, toplayıcı dosyadaki en eski girdileri silerek yeni girişler için boş alan oluşturur.Bu sınırı değiştirmek için, koleksiyon planının MaximumLogFileSize özniteliğini değiştirin.Bu koleksiyon planlarının yerelleştirilmiş sürümlerini nereden bulabilirim?
Yerelleştirilmiş planları toplayıcının yükleme alt klasörlerinde bulabilirsiniz.
FullPathToITraceFileDirectoryAndFileName
.iTrace dosya dizinine ve .iTrace dosya adına .itrace uzantısı ile birlikte tam yol.
Güvenlik NotuGöreli yol değil, tam yolu sağlayın.PathToAppExecutableFileAndFileName
Yönetilen uygulamanızın yol ve dosya adı.
Uygulamadan çıkarak veri toplamayı durdurun.
Visual Studio Ultimate içinde .iTrace dosyasını açın
Visual Studio Ultimate içinde .iTrace dosyasını açın
.iTrace dosyasını taşıyın ya da Visual Studio Ultimate olan bir bilgisayara kopyalayın.
Visual Studio dışında .iTrace dosyasına çift tıklatın, ya da dosyayı Visual Studio içinde açın.
Visual Studio IntelliTrace Özet sayfasını gösterir. Çoğu bölümde, olayları ya da diğer nesneleri gözden geçirebilir, bir nesne seçebilir ve bir olayın gerçekleştiği yerde ve zamanda IntelliTrace ile hata ayıklamaya başlayabilirsiniz. Bkz: IntelliTrace Günlük (.iTrace) Dosyalarıyla Uygulamanızda Hata Ayıklama
Not
IntelliTrace ile hata ayıklamak ve kodunuz içinde adım adım ilerlemek için, eşleşen kaynak dosyaları ve sembol dosyalarınız olmalıdır.Sembol (.pdb) dosyalarının Visual Studio sembol yolunda olduğundan emin olun.Aksi takdirde, Visual Studio kaynak konumları çözümleyemez ve "Simgeler bulunamadı." iletisini gösterir. Bkz: Simge (.pdb), Kaynak ve İkili Dosyaları Bulma
Uygulamamı yavaşlatmadan en çok veriyi nasıl alabilirim?
IntelliTrace pek çok veri toplayabilir, bu nedenle uygulamanızın performansına olan etkisi IntelliTrace'in topladığı veriye ve çözümlediği kod türüne bağlıdır. Bkz: IntelliTrace Toplamasını Ürün Sunucularında uygun hale getirme.
Uygulamanızı yavaşlatmadan en fazla veriyi almak için bazı yollar şunlardır:
Toplayıcı yalnızca bir sorun olduğunu ya da sorunu yeniden oluşturabileceğinizi düşündüğünüzde çalıştırın.
Toplamayı başlatın, sorunu yeniden oluşturun ve toplama işlemini durdurun. Visual Studio Ultimate'taki .iTrace dosyasını açın ve verileri inceleyin. Bkz: Visual Studio Ultimate içinde .iTrace dosyasını açın
Web uygulamaları ve SharePoint uygulamaları için toplayıcı belirtilen uygulama havuzunu paylaşan her uygulama için veri kaydeder. Bu aynı uygulama havuzunu paylaşan herhangi bir uygulamayı yavaşlatabilir, bir koleksiyon planı içinde tek bir uygulama için modüller belirleyebilmenize rağmen.
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ığı toplama planındaki olayları inceleyin. Uygun olmayan veya sizi ilginiz dahilinde olmayan olayları devre dışı bırakmak için toplama planını düzenleyin.
Bir olayı devre dışı bırakmak için, <DiagnosticEventSpecification> öğesi için enabled özniteliğini false yapın.
<DiagnosticEventSpecification enabled="false">
enabled özelliği yoksa, olay etkinleştirilmiştir.
Bu, performansı nasıl iyileştirir?
Uygulama için uygun olmayan olayları devre dışı bırakarak başlatma süresini azaltabilirsiniz. Örneğin, Windows iş akışı kullanmayan uygulamalar için Windows iş akışı olaylarını devre dışı bırakın.
Kayıt defterine erişen ancak kayıt defteri ayarları ile ilgili sorunları göstermeyen uygulamaların kayıt defteri olaylarını devre dışı bırakarak hem başlangıç hem de çalışma zamanı performansını artırabilirsiniz.
IntelliTrace'in veri topladığı toplama planındaki modülleri inceleyin. İlginiz dahilinde olan modülleri eklemek için toplama planını düzenleyin:
Toplama planını açın. <ModuleList> öğesini bulun.
<ModuleList> öğesinde, isExclusionList özelliğini false olarak ayarlayın.
Her bir modülü şunlardan biri ile belirtmek için <Name> öğesini kullanın: dosya adı, adında dizi olan her modülü içermek için dizi değeri veya genel anahtar.
Örneğin, yalnızca Fabrikam Fiber Web uygulamasının 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ı "Fabrikam" yazısı içeren modüllerden veri toplamak için aşağıdakine benzer bir liste oluşturun:
<ModuleList isExclusionList="false"> <Name>Fabrikam</Name> </ModuleList>
Kendi 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 iyileştirir?
Bu yöntem çağrısı bilgi miktarını ve uygulama başladığında ve çalışır olduğunda IntelliTrace'in topladığı diğer araç verilerinin miktarını azaltır. Bu veriler şunları yapmanızı sağlar:
Veri toplamanın ardından kod boyunca ilerleyin.
İşlev çağrılarına geçirilen ve bunlardan döndürülen değerleri inceleyin.
Neden bunun yerine modülleri hariç tutmuyoruz?
Varsayılan olarak, modülleri isExclusionList özelliğini true olarak ayarlayarak toplama planlarını hariç tutun. Ancak, modüllerin hariç tutulması yine de listenin ölçütlerine uymayan ve ilginiz dahilinde olmayan üçüncü taraf veya açık kaynak modüller gibi modüllerden veri toplanmasına neden olabilir.
IntelliTrace'in toplamadığı herhangi bir veri var mı?
Evet, performans etkisini azaltmak için IntelliTrace yöntemlere geçen ve bunlardan gelen en üst seviye nesnelerdeki alanlarda basit veri türleri değerlerine ve yöntemlerine giden ve bunlardan gelen basit veri türleri değerlerinin veri toplamasını kısıtlar.
Örneğin, elinizde tam sayı id kabul eden bir AlterEmployee yöntem imzası ve bir Employee nesnesi oldemployee olduğunu varsayalım:
public Employee AlterEmployee(int id, Employee oldemployee)
Employee türü şu özelliklere sahiptir: Id, Name ve HomeAddress. Employee ve Address türü arasında bir ilişkilendirme ilişkisi bulunur.
Toplayıcı id, Employee.Id, Employee.Name ve AlterEmployee yönteminden dönen Employee nesnesinin değerlerini kaydeder. Ancak, toplayıcı boş olup olmadığı dışında Address nesnesi hakkında bilgi kaydetmez. Toplayıcı AlterEmployee yöntemine diğer yöntemler yöntem parametreleri olarak kaydedilip bu yerel değişkenleri parametre olarak kullanmadıkları sürece yerel değişkenler hakkında da veri kaydetmez.
IntelliTrace verisini başka nereden alabilirim?
Visual Studio Ultimate'taki bir IntelliTrace hata ayıklama oturumundan, bkz. Visual Studio'da Hata Ayıklama için IntelliTrace ile Kod Yürütmeyi Kaydetme.
Microsoft Test Yöneticisi'nde bir test oturumdan, bkz: Hata Ayıklama Zorluklarını Çözmeye Yardımcı Olması için IntelliTrace Verileri Nasıl Toplanır.
Daha fazla bilgiyi nereden bulabilirim?
IntelliTrace Günlük (.iTrace) Dosyalarıyla Uygulamanızda Hata Ayıklama
IntelliTrace ile Kod Yürütmeyi Kaydederek Uygulamanızda Hata Ayıklama
Bloglar
Tek başına IntelliTrace Toplayıcıyı Uzaktan Kullanarak
IntelliTrace Toplama Planlarını Oluşturma ve Özelleştirme
Üretim Sunucularında IntelliTrace Toplamasını uygun hale getirme