Shromažďování dat technologie IntelliTrace mimo sadu Visual Studio pomocí samostatného kolektoru
Chcete-li ladit aplikace v produkčních nebo jiných prostředích, použijte pro uložení diagnostických dat do souboru protokolu IntelliTrace (soubor .iTrace) kolektor IntelliTrace.To vám umožní zaznamenat, co se v aplikaci stalo, bez nutnosti instalovat systém Visual Studio nebo měnit prostředí aplikace.Po dokončení shromažďování dat lze kolektor odinstalovat pouhým smazáním.
Sledujte IntelliTrace v akci: Shromažďování a analýza dat IntelliTrace v produkčním prostředí pro ladění (video Channel 9)
Požadavky
Rozhraní .NET Framework 3.5, 4 nebo 4.5
Systém Visual Studio Ultimate na vývojovém nebo jiném počítači pro otevření souborů .iTrace
[!POZNÁMKA]
Nezapomeňte uložit své soubory symbolů (.pdb).Chcete-li ladit pomocí nástroje IntelliTrace a krokovat kód, je zapotřebí mít k dispozici odpovídající zdrojové soubory a soubory symbolů.Viz téma Vyhledání souborů se symboly (PDB), zdrojových a binárních souborů.
Nejčastější dotazy
Jaké aplikace fungují s kolektorem?
Jak lze začít?
Jak lze získat co nejvíce dat bez zpomalení aplikace?
Kde jinde lze získat data IntelliTrace
Jaké aplikace fungují s kolektorem?
Webové aplikace ASP.NET hostované v Internetové informační službě (IIS) verze 7.0, 7.5 a 8.0
Aplikace služby SharePoint 2010
Spravované aplikace klasické pracovní plochy (soubory EXE)
Jak lze začít?
Nainstalujte kolektor.
Set up permissions for the collector directory.
Chcete-li shromažďovat data pro webové aplikace nebo aplikace služby SharePoint, nainstalujte rutiny prostředí PowerShell pro IntelliTrace.
Nastavení oprávnění pro adresář souboru .iTrace
Shromažďování dat z webové aplikace nebo aplikace služby SharePoint:
-nebo-
Shromažďování dat ze spravovaných aplikací
Otevření souboru .iTrace v systému Visual Studio Ultimate
Nainstalujte kolektor.
Vytvořte na serveru své aplikace adresář kolektoru, například C:\IntelliTraceCollector
Stáhněte si kolektor z webu Stažení softwaru nebo z instalační složky systému Visual Studio:
Stažení softwaru:
Přejděte na serveru vaší aplikace na web Kolektor IntelliTrace pro systém Visual Studio.
Vedle názvu souboru IntelliTraceCollector.exe klikněte na tlačítko Download.
Uložte soubor IntelliTraceCollector.exe do adresáře kolektoru, například C:\IntelliTraceCollector
Spusťte soubor IntelliTraceCollector.exe.Tím je extrahován soubor IntelliTraceCollection.cab.
-nebo-
Instalační složka systému Visual Studio:
[!POZNÁMKA]
Chcete-li si stáhnout kolektor podporující diagnostické události pro aplikace služby SharePoint 2010, stáhněte si Kolektor IntelliTrace pro systém Visual Studio nebo se ujistěte, že máte nainstalovánu aktualizaci Visual Studio 2012.1.
Zkopírujte soubor IntelliTraceCollection.cab z následující složky:
..\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\11.0.0
Vložte soubor IntelliTraceCollection.cab do adresáře kolektoru, například C:\IntelliTraceCollector
Rozbalte soubor IntelliTraceCollection.cab:
Na serveru aplikace otevřete okno příkazového řádku jako správce.
Vyhledejte adresář kolektoru, například C:\IntelliTraceCollector
Rozbalte soubor IntelliTraceCollection.cab použitím příkazu expand včetně tečky (.) na konci:
expand /f:* IntelliTraceCollection.cab.
[!POZNÁMKA]
Tečka (.) zachovává podsložky obsahující lokalizované plány sběru dat.
Nastavení oprávnění adresáře kolektoru
Na serveru aplikace otevřete okno příkazového řádku jako správce.
Pomocí příkazu systému Windows icacls udělte úplná oprávnění k adresáři kolektoru správci serveru.Příklad:
icacls "C:\IntelliTraceCollector" /grant "<Domain\AdministratorID>":F
Chcete-li shromažďovat data pro webové aplikace nebo aplikace služby SharePoint:
Poskytněte uživateli, který bude spouštět rutiny prostředí IntelliTrace PowerShell, úplná oprávnění k adresáři kolektoru.
Příklad:
icacls "C:\IntelliTraceCollector" /grant "<Domain\UserID>":F
Udělte fondu aplikací pro webovou aplikaci nebo aplikaci služby SharePoint oprávnění číst a spouštět obsah adresáře kolektoru.
Příklad:
Pro webovou aplikaci ve fondu aplikací DefaultAppPool:
icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\DefaultAppPool":RX
Pro aplikaci služby SharePoint ve fondu aplikací SharePoint - 80:
icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\SharePoint - 80":RX
Chcete-li shromažďovat data pro webové aplikace nebo aplikace služby SharePoint, nainstalujte rutiny prostředí PowerShell pro IntelliTrace.
Ujistěte se, že na serveru aplikace je povolen nástroj PowerShell.Ve většině verzí systému Windows Server lze tuto funkci přidat pomocí nástroje pro správu Správce serveru.
Nainstalujte rutiny cmdlet prostředí PowerShell pro IntelliTrace.
Spusťte okno příkazového prostředí PowerShell jako správce.
Zvolte Start, Všechny programy, Příslušenství, Windows PowerShell.
Zvolte jeden z následujících kroků:
V 64bitových operačních systémech otevřete místní nabídku prostředí Windows PowerShell.Zvolte příkaz Spustit jako správce.
V 32bitových operačních systémech otevřete místní nabídku prostředí Windows PowerShell (x86).Zvolte příkaz Spustit jako správce.
V příkazovém okně prostředí PowerShell importujte knihovnu Microsoft.VisualStudio.IntelliTrace.PowerShell.dll pomocí příkazu Import-Module.
Příklad:
Import-Module "C:\IntelliTraceCollector\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll"
Nastavení oprávnění pro adresář souboru .iTrace
Na serveru vaší aplikace vytvořte adresář souboru .iTrace, například C:\IntelliTraceLogFiles
[!POZNÁMKA]
-
Aby nedocházelo ke zpomalování vaší aplikace, vyberte umístění na nepříliš vytěžovaném místním vysokorychlostním disku.
-
Soubory .iTrace a soubory kolektoru lze umístit na stejné umístění.Máte-li však webovou aplikaci nebo aplikaci služby SharePoint, ujistěte se, že je toto umístění mimo adresář, v němž je aplikace uložena.
Poznámka k zabezpečení Omezte adresář souboru .iTrace na použití pouze těmi identitami, které musí s kolektorem pracovat.Soubor .iTrace může obsahovat citlivé informace, například data uživatelů, databáze, jiná zdrojová umístění či připojovací řetězce, protože nástroj IntelliTrace umí zaznamenat libovolná data předaná parametrům metod nebo jako návratové hodnoty.
Ujistěte se, že ti, kdo mohou otevírat soubory .iTrace, jsou oprávněni prohlížet citlivá data.Při sdílení souborů .iTrace buďte opatrní.Pokud musí mít přístup i další lidé, zkopírujte soubory do zabezpečeného sdíleného umístění.
-
U webových aplikací nebo aplikací služby SharePoint udělte jejich fondu aplikací úplná oprávnění k adresáři souboru .iTrace.K tomu lze použít příkaz systému Windows icacls nebo Průzkumníka Windows (či Průzkumníka souborů).
Příklad:
Nastavení oprávnění příkazem systému Windows icacls:
Pro webovou aplikaci ve fondu aplikací DefaultAppPool:
icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\DefaultAppPool":F
Pro aplikaci služby SharePoint ve fondu aplikací SharePoint - 80:
icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\SharePoint - 80":F
-nebo-
Nastavení oprávnění pomocí Průzkumníka Windows (nebo Průzkumníka souboru):
Otevřete Vlastnosti adresáře souboru .iTrace.
Na kartě Zabezpečení zvolte Upravit, poté Přidat.
Ujistěte se, že jsou v textovém poli Vyberte typ objektu zobrazeny Zabudované objekty zabezpečení.Nejsou-li objekty zobrazeny, přidejte je kliknutím na tlačítko Typy objektů.
Ujistěte se, že se váš místní počítač zobrazuje v textovém poli Z tohoto umístění.Pokud tam počítač není, zadejte jej kliknutím na tlačítko Umístění.
Do textového pole Zadejte názvy objektů k výběru přidejte fond aplikací pro webovou aplikaci nebo aplikaci služby SharePoint.
Zkontrolujte název kliknutím na tlačítko Kontrola názvů.Klepněte na tlačítko OK.
Ujistěte se, že má fond aplikací nastaveno Úplné řízení.
Shromažďování dat z webové aplikace nebo aplikace služby SharePoint:
Shromažďování dat započněte otevřením příkazového okna prostředí PowerShell jako správce a spuštěním tohoto příkazu:
Start-IntelliTraceCollection"<ApplicationPool>"<PathToCollectionPlan><FullPathToITraceFileDirectory>
Důležité Po spuštění tohoto příkazu zadejte Y pro potvrzení, že chcete zahájit shromažďování dat.
Chcete-li například shromažďovat data z aplikace služby SharePoint ve fondu aplikací SharePoint - 80, zadejte následující příkaz:
Start-IntelliTraceCollection "SharePoint - 80" "C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" "C:\IntelliTraceLogFiles"
ApplicationPool
Název fondu aplikací, v němž je aplikace spuštěna
PathToCollectionPlan
Cesta k plánu sběru, soubor .xml konfigurující nastavení kolektoru.
Lze zadat plán dodávaný spolu s kolektorem.Následující plány fungují pro webové aplikace a aplikace služby SharePoint:
collection_plan.ASP.NET.default.xml
Shromažďuje pouze události IntelliTrace a události služby SharePoint, včetně výjimek, volání databáze a webových požadavků serveru.
collection_plan.ASP.NET.trace.xml
Shromažďuje volání funkcí a všechna data v plánu collection_plan.ASP.NET.default.xml.Tento plán je vhodný pro podrobnou analýzu, může však aplikaci zpomalit více než plán collection_plan.ASP.NET.default.xml.
Chcete-li se zpomalení aplikace vyhnout, přizpůsobte tyto plány svým potřebám nebo vytvořte vlastní plán.Z důvodů zabezpečení umístěte vlastní plány do stejného zabezpečeného umístění jako soubory kolektoru.Viz Vytváření a přizpůsobení plánů shromažďování dat IntelliTrace a Jak lze získat většinu dat bez zpomalení aplikace?
PoznámkaVe výchozím nastavení je maximální velikost souboru .iTrace 100 MB.Dosáhne-li velikost souboru .iTrace tohoto limitu, odstraní kolektor nejstarší položky v souboru, aby se uvolnilo místo pro novější položky.Chcete-li tento limit změnit, upravte v plánu atribut MaximumLogFileSize.Kde lze najít lokalizované verze těchto plánů shromažďování dat?
Lokalizované plány lze najít v podsložkách kolektoru.
FullPathToITraceFileDirectory
Úplná cesta k adresáři souboru .iTrace.
Poznámka k zabezpečeníZadejte úplnou, nikoli relativní cestu.Kolektor se připojí k fondu aplikací a spustí shromažďování dat.
Mohu v tomto okamžiku otevřít soubor .iTrace? Ne, soubor je během shromažďování dat uzamčen.
Reprodukujte problém.
Chcete-li uložit aktuální stav souboru .iTrace, použijte následující syntaxi:
Checkpoint-IntelliTraceCollection"<ApplicationPool>"
Chcete-li zkontrolovat stav shromažďování, použijte následující syntaxi:
Get-IntelliTraceCollectionStatus
Pro zastavení shromažďování dat použijte následující syntaxi:
Stop-IntelliTraceCollection"<ApplicationPool>"
Důležité Po spuštění tohoto příkazu zadejte Y pro potvrzení, že chcete ukončit shromažďování dat.Jinak kolektor může pokračovat ve shromažďování dat, soubor iTrace zůstane uzamčen nebo možná nebude obsahovat žádná užitečná data.
Otevření souboru .iTrace v systému Visual Studio Ultimate
Shromažďování dat ze spravovaných aplikací
Chcete-li spustit aplikaci a zároveň shromažďovat data, použijte následující syntaxi:
<FullPathToIntelliTraceCollectorExecutable>\IntellitraceSC.exe launch /cp:<PathToCollectionPlan>/f:<FullPathToITraceFileDirectoryAndFileName><PathToAppExecutableFileAndFileName>
Příklad pro shromažďování dat z aplikace nazvané MyApp:
C:\IntelliTraceCollector\IntelliTraceSC.exe launch /cp:"C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" /f:"C:\IntelliTraceLogFiles\MyApp.itrace" "C:\MyApp\MyApp.exe"
FullPathToIntelliTraceCollectorExecutable
Úplná cesta ke spustitelnému souboru kolektoru IntelliTraceSC.exe
PathToCollectionPlan
Cesta k plánu sběru, soubor .xml konfigurující nastavení kolektoru.
Lze zadat plán dodávaný spolu s kolektorem.Následující plány fungují pro spravované aplikace:
collection_plan.ASP.NET.default.xml
Shromažďuje pouze události IntelliTrace, včetně výjimek, volání databáze a webových požadavků serveru.
collection_plan.ASP.NET.trace.xml
Shromažďuje volání funkcí a všechna data v plánu collection_plan.ASP.NET.default.xml.Tento plán je vhodný pro podrobnou analýzu, může však aplikaci zpomalit více než plán collection_plan.ASP.NET.default.xml.
Chcete-li se zpomalení aplikace vyhnout, přizpůsobte tyto plány svým potřebám nebo vytvořte vlastní plán.Z důvodů zabezpečení umístěte vlastní plány do stejného zabezpečeného umístění jako soubory kolektoru.Viz Vytváření a přizpůsobení plánů shromažďování dat IntelliTrace a Jak lze získat většinu dat bez zpomalení aplikace?
PoznámkaVe výchozím nastavení je maximální velikost souboru .iTrace 100 MB.Dosáhne-li velikost souboru .iTrace tohoto limitu, odstraní kolektor nejstarší položky v souboru, aby se uvolnilo místo pro novější položky.Chcete-li tento limit změnit, upravte v plánu atribut MaximumLogFileSize.Kde lze najít lokalizované verze těchto plánů shromažďování dat?
Lokalizované plány lze najít v podsložkách kolektoru.
FullPathToITraceFileDirectoryAndFileName
Úplná cesta k adresáři souboru .iTrace a název souboru .iTrace s příponou .itrace.
Poznámka k zabezpečeníZadejte úplnou, nikoli relativní cestu.PathToAppExecutableFileAndFileName
Cesta a název souboru spravované aplikace
Shromažďování dat ukončíte ukončením aplikace.
Otevření souboru .iTrace v systému Visual Studio Ultimate
Otevření souboru .iTrace v systému Visual Studio Ultimate
Přesuňte nebo zkopírujte soubor .iTrace do počítače se systémem Visual Studio Ultimate.
Poklikejte na soubor .iTrace mimo systém Visual Studio nebo jej otevřete přímo ze systému Visual Studio.
Sada Visual Studio zobrazí stránku Přehled IntelliTrace.Ve většině částí lze prohlížet události nebo jiné položky, zvolit položku a začít ladit nástrojem IntelliTrace od místa, kde a kdy k události došlo.Viz téma Ladění aplikace pomocí souborů ITRACE protokolu technologie IntelliTrace.
[!POZNÁMKA]
Chcete-li ladit pomocí nástroje IntelliTrace a krokovat kód, je zapotřebí mít k dispozici odpovídající zdrojové soubory a soubory symbolů.Ujistěte se, že jsou soubory symbolů umístěny v cestě k symbolům systému Visual Studio.Jinak sada Visual Studio nerozpozná zdrojové umístění a zobrazí zprávu „Symboly nebyly nalezeny“. Viz téma Vyhledání souborů se symboly (PDB), zdrojových a binárních souborů.
Jak lze získat většinu dat bez zpomalení aplikace?
Nástroj IntelliTrace dokáže shromáždit velké množství dat, proto dopad na výkon aplikace závisí na datech, která nástroj IntelliTrace shromažďuje, a na typu kódu, který analyzuje.Viz Optimalizace shromažďování dat IntelliTrace na produkčních serverech.
Zde jsou některé způsoby, jak získat většinu dat bez zpomalení vaší aplikace:
Spouštějte kolektor pouze pokud si myslíte, že došlo k potížím, nebo pokud dokážete problém reprodukovat.
Spusťte shromažďování, reprodukujte problém a poté shromažďování zastavte.Otevřete soubor .iTrace v systému Visual Studio Ultimate a prozkoumejte získaná data.Viz téma Otevření souboru .iTrace v systému Visual Studio Ultimate.
V případě webových aplikací a aplikací služby SharePoint kolektor zaznamenává data pro každou aplikaci, která sdílí určený fond aplikací.To může zpomalit jakoukoliv aplikaci, která sdílí stejný fond aplikací, i přesto, že v plánu sběru lze zadat pouze konkrétní moduly jediné aplikace.
Pokud chcete zabránit tomu, aby kolektor zpomalil ostatní aplikace, hostujte každou aplikaci v jejím vlastním fondu aplikací.
Zkontrolujte události v plánu shromažďování dat, pro které nástroj IntelliTrace shromažďuje data.Upravte plán shromažďování dat a zakažte události, které nejsou důležité nebo vás nezajímají.
Chcete-li zakázat událost, nastavte atribut enabled prvku <DiagnosticEventSpecification> na hodnotu false:
<DiagnosticEventSpecification enabled="false">
Pokud atribut enabled neexistuje, je událost povolena.
Jak to zlepší výkon?
Zakázáním událostí, které nejsou relevantní pro danou aplikaci, můžete zkrátit dobu spouštění.Například zakažte události modelu Windows Workflow pro aplikace, které nepoužívají model Windows Workflow.
Můžete zvýšit rychlost spouštění i provádění zakázáním událostí registru pro aplikace, které sice přistupují k registru, ale nemají problémy s nastavením registru.
Zkontrolujte moduly v plánu shromažďování dat, pro které nástroj IntelliTrace shromažďuje data.Upravte plán shromažďování dat tak, aby zahrnoval pouze moduly, které vás zajímají:
Otevřete plán shromažďování dat.Najděte prvek <ModuleList>.
V seznamu <ModuleList> nastavte atribut isExclusionList na hodnotu false.
Použijte element <Name> pro určení každého modulu s některou z následujících hodnot: název souboru, řetězcová hodnota pro zahrnutí každého modulu, jehož název obsahuje daný řetězec, nebo veřejný klíč.
Například pro shromažďování dat pouze z hlavního webového modulu nebo webové aplikace Fabrikam Fiber vytvořte seznam podobný následujícímu:
<ModuleList isExclusionList="false"> <Name>FabrikamFiber.Web.dll</Name> </ModuleList>
Pro shromažďování dat z libovolného modulu, jehož název obsahuje „Fabrikam“, vytvořte seznam podobný následujícímu:
<ModuleList isExclusionList="false"> <Name>Fabrikam</Name> </ModuleList>
Pro shromažďování z modulů zadáním jejich tokenů veřejných klíčů vytvořte seznam podobný následujícímu:
<ModuleList isExclusionList="false"> <Name>PublicKeyToken:B77A5C561934E089</Name> <Name>PublicKeyToken:B03F5F7F11D50A3A</Name> <Name>PublicKeyToken:31BF3856AD364E35</Name> <Name>PublicKeyToken:89845DCD8080CC91</Name> <Name>PublicKeyToken:71E9BCE111E9429C</Name> </ModuleList>
Jak to zlepší výkon?
To snižuje množství informací o volání metody a dalších instrumentačních dat, která nástroj IntelliTrace shromažďuje při spuštění a běhu aplikace.Tato data umožňují:
Krokovat kód po shromáždění dat.
Zkoumat hodnoty předané a vrácené z volání funkcí.
Proč namísto toho nevyloučit moduly?
Ve výchozím nastavení plány shromažďování dat vylučují moduly nastavením atributu isExclusionList na hodnotu true.Vyloučení modulů však může i nadále mít za výsledek shromažďování dat z modulů, které nesplňují kritéria v seznamu a které vás nemusí zajímat, například moduly třetích stran nebo open source.
Existují nějaká data, která nástroj IntelliTrace neshromažďuje?
Ano, pro snížení vlivu na výkon omezuje nástroj IntelliTrace shromažďování dat na hodnoty primitivních datových typů předávané a vracené z metod a na hodnoty primitivních datových typů v polích objektů nejvyšší úrovně předávané a vracené z metod.
Předpokládejme například, že máte signaturu metody AlterEmployee, která přijímá celočíselné id a objekt Employeeoldemployee:
public Employee AlterEmployee(int id, Employee oldemployee)
Typ Employee má následující atributy: Id, Name a HomeAddress.Existuje vztah přidružení mezi Employee a typem Address.
Kolektor zaznamenává hodnoty id, Employee.Id, Employee.Name a objekt Employee vracený metodou AlterEmployee.Kolektor však nezaznamenává jiné informace o objektu Address, než zda měl hodnotu null.Kolektor také nezaznamenává data o místních proměnných v metodě AlterEmployee, pokud jiné metody nepoužívají tyto místní proměnné jako parametry. V tom případě jsou zaznamenávány jako parametry metod.
Kde jinde lze získat data IntelliTrace
Z ladicí relace IntelliTrace v sadě Visual Studio Ultimate, viz Zaznamenávání provádění kódu pomocí technologie IntelliTrace za účelem ladění v sadě Visual Studio.
Z testovací relace v Microsoft Test Manager, viz Jak: sběr dat IntelliTrace pomůže ladění složité problémy.
Kde lze získat další informace?
Ladění aplikace pomocí souborů ITRACE protokolu technologie IntelliTrace
Ladění aplikace pomocí zaznamenávání provádění kódu s použitím technologie IntelliTrace
Blogy
Vzdálené používání samostatného kolektoru IntelliTrace
Vytváření a přizpůsobení plánů shromažďování dat IntelliTrace
Optimalizace shromažďování dat IntelliTrace na produkčních serverech