Použití samostatného kolektoru IntelliTrace (C#, Visual Basic)
Samostatný kolektor IntelliTrace umožňuje shromažďovat diagnostická data IntelliTrace pro vaše aplikace na produkčních serverech nebo jiných prostředích bez instalace sady Visual Studio na cílový počítač a beze změny prostředí cílového systému. Samostatný kolektor IntelliTrace funguje na webových aplikacích, SharePointu, WPF a model Windows Forms. Až shromažďování dat dokončíte, stačí kolekci odstranit a odinstalovat ji.
Poznámka:
Doporučené přístupy k diagnostice problémů na produkčních serverech najdete v tématu Diagnostika problémů po nasazení.
Požadavky
.NET Framework 3.5 nebo vyšší
Visual Studio Enterprise (ale ne edice Professional nebo Community) na vývojovém počítači nebo jiném počítači pro otevření souborů .iTrace
Poznámka:
Nezapomeňte uložit soubory symbolu (.pdb). Pokud chcete ladit pomocí IntelliTrace a krokovat kód, musíte mít odpovídající zdrojové soubory a soubory symbolů. Viz Diagnostika problémů po nasazení.
Nejčastější dotazy
Jaké aplikace fungují s kolektorem?
ASP.NET webové aplikace hostované na Internetová informační služba (IIS) verze 7.0, 7.5, 8.0, 12.0 a 16.0
Aplikace SharePointu 2010 a SharePointu 2013
Windows Presentation Foundation (WPF) a model Windows Forms aplikace
Jak mám začít?
Instalace kolektoru
Na serveru aplikace vytvořte adresář kolektoru, například: C:\IntelliTraceCollector
Získejte kolektor z instalační složky sady Visual Studio.
Zkopírujte IntelliTraceCollection.cab ze složky, ve které je kolektor nainstalovaný, například:
.. \Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace
nebo pro předchozí verze sady Visual Studio:
.. \Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\12.0.0
Vložte IntelliTraceCollection.cab do adresáře kolektoru, například: C:\IntelliTraceCollector
Rozbalit IntelliTraceCollection.cab:
Na serveru aplikace otevřete okno příkazového řádku jako správce.
Přejděte do adresáře kolektoru, například: C:\IntelliTraceCollector
Pomocí příkazu rozbalení, včetně tečky (.) na konci, rozbalte IntelliTraceCollection.cab:
expand /f:* IntelliTraceCollection.cab .
Poznámka:
Tečka (.) zachovává podsložky, které obsahují lokalizované plány kolekcí.
Nastavení oprávnění pro adresář kolektoru
Na serveru aplikace otevřete okno příkazového řádku jako správce.
Pomocí příkazu Windows icacls dejte správci serveru úplná oprávnění k adresáři kolektoru. Příklad:
icacls "C:\IntelliTraceCollector" /grant "
<Domain\AdministratorID>":F
Shromažďování dat pro webovou aplikaci nebo aplikaci SharePoint:
Dejte osobě, která bude spouštět rutiny PowerShellu IntelliTrace, ú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 SharePoint oprávnění ke čtení a spouštění adresáře kolektoru.
Příklad:
Pro webovou aplikaci ve fondu aplikací DefaultAppPool :
icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\DefaultAppPool":RX
Pro aplikaci SharePoint ve fondu aplikací SharePoint – 80 :
icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\SharePoint - 80":RX
Instalace rutin Prostředí PowerShell pro IntelliTrace pro shromažďování dat pro webové aplikace nebo aplikace SharePointu
Na serveru vaší aplikace se ujistěte, že je povolený PowerShell. Ve většině verzí Windows Serveru můžete tuto funkci přidat v nástroji pro správu Správce serveru.
Nainstalujte rutiny Prostředí PowerShell pro IntelliTrace.
Otevřete příkazové okno PowerShellu 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 windows PowerShellu. Zvolte Spustit jako správce.
V 32bitových operačních systémech otevřete místní nabídku prostředí Windows PowerShell (x86). Zvolte Spustit jako správce.
V příkazovém okně PowerShellu použijte příkaz Import-Module k importu Microsoft.VisualStudio.IntelliTrace.PowerShell.dll.
Příklad:
Import-Module "C:\IntelliTraceCollector\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll"
Nastavení oprávnění pro adresář souborů .iTrace
Na serveru aplikace vytvořte adresář souborů .iTrace, například: C:\IntelliTraceLogFiles.
Poznámka:
- Abyste se vyhnuli zpomalení aplikace, zvolte umístění na místním vysokorychlostním disku, který není velmi aktivní.
- Soubory .iTrace a soubory kolektoru můžete umístit na stejné místo. Pokud ale máte webovou aplikaci nebo aplikaci SharePoint, ujistěte se, že je toto místo mimo adresář, který je hostitelem aplikace.
Důležité
- Omezte adresář souboru .iTrace pouze na ty identity, které musí pracovat se kolektorem. Soubor .iTrace může obsahovat citlivé informace, jako jsou data z uživatelů, databází, jiných zdrojových umístění a připojovací řetězec, protože IntelliTrace může zaznamenávat všechna data, která předají parametry metody nebo jako návratové hodnoty.
- Ujistěte se, že ti, kteří mohou otevírat soubory .iTrace, mají oprávnění k zobrazení citlivých dat. Při sdílení souborů .iTrace buďte opatrní. Pokud musí mít přístup i jiní uživatelé, zkopírujte soubory do zabezpečeného sdíleného umístění.
- Abyste se vyhnuli zpomalení aplikace, zvolte umístění na místním vysokorychlostním disku, který není velmi aktivní.
Pro webovou aplikaci nebo aplikaci SharePoint udělte svému fondu aplikací úplná oprávnění k adresáři souborů .iTrace. Můžete použít příkaz Windows icacls nebo použít Průzkumníka Windows (nebo Průzkumník souborů).
Příklad:
Nastavení oprávnění pomocí příkazu Windows icacls :
Pro webovou aplikaci ve fondu aplikací DefaultAppPool :
icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\DefaultAppPool":F
Pro aplikaci 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ík souborů):
Otevřete vlastnosti pro adresář souborů .iTrace.
Na kartě Zabezpečení zvolte Upravit, Přidat.
Ujistěte se, že se předdefinované objekty zabezpečení zobrazí v poli Vybrat tento typ objektu. Pokud tam není, přidejte ho výběrem typu objektu.
Ujistěte se, že se místní počítač zobrazí v poli Z tohoto umístění . Pokud tam není, zvolte Umístění a změňte ho.
Do pole Zadejte názvy objektů, které chcete vybrat , přidejte fond aplikací pro webovou aplikaci nebo aplikaci SharePoint.
Zvolte Zkontrolovat jména a přeložte název. Vyberte OK.
Ujistěte se, že fond aplikací má úplné řízení.
Shromažďování dat z webové aplikace nebo aplikace SharePointu
Pokud chcete začít shromažďovat data, otevřete příkazové okno PowerShellu jako správce a spusťte tento příkaz:
Start-IntelliTraceCollection
"
<ApplicationPool><"
PathToCollectionPlan> <FullPathToITraceFileDirectory>Důležité
Po spuštění tohoto příkazu zadejte Y a potvrďte, že chcete začít shromažďovat data.
Pokud například chcete shromažďovat data z aplikace SharePointu ve fondu aplikací SharePoint – 80 :
Start-IntelliTraceCollection "SharePoint - 80" "C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" "C:\IntelliTraceLogFiles"
Název Popis Fond aplikací Název fondu aplikací, ve kterém běží vaše aplikace PathToCollectionPlan Cesta k plánu kolekce, .xml souboru, který konfiguruje nastavení kolektoru.
Můžete zadat plán, který je součástí kolektoru. Následující plány fungují pro webové aplikace a sharepointové aplikace:
- collection_plan. ASP. NET.default.xml
Shromažďuje pouze události IntelliTrace a události SharePointu, včetně výjimek, volání databáze a požadavků webového serveru.
- collection_plan. ASP. NET.trace.xml
Shromažďuje volání funkcí a všechna data v collection_plan. ASP. NET.default.xml. Tento plán je vhodný pro podrobnou analýzu, ale může zpomalit vaši aplikaci více než collection_plan. ASP. NET.default.xml.
Abyste se vyhnuli zpomalení aplikace, přizpůsobte si tyto plány nebo vytvořte vlastní plán. Pro zabezpečení umístěte všechny vlastní plány do stejného zabezpečeného umístění jako soubory kolektoru. Viz Vytváření a přizpůsobení plánů kolekce IntelliTrace a Návody získat nejvíce dat bez zpomalení aplikace? Poznámka: Ve výchozím nastavení je maximální velikost souboru .iTrace 100 MB. Když soubor .iTrace dosáhne tohoto limitu, kolektor odstraní nejstarší položky souboru, aby místo pro novější položky. Pokud chcete tento limit změnit, upravte atribut plánuMaximumLogFileSize
kolekce.
Kde najdu lokalizované verze těchto plánů kolekce?
Lokalizované plány najdete v podsložkách kolektoru.FullPathToITraceFileDirectory Úplná cesta k adresáři souboru .iTrace. Poznámka zabezpečení: Zadejte úplnou cestu, nikoli relativní cestu. Kolektor se připojí k fondu aplikací a začne shromažďovat data.
Mohu nyní otevřít soubor .iTrace? Ne, soubor je během shromažďování dat uzamčen.
Reprodukujte problém.
K vytvoření kontrolního bodu souboru .iTrace použijte tuto syntaxi:
Checkpoint-IntelliTraceCollection
"
<Fond> aplikací"
Pokud chcete zkontrolovat stav kolekce, použijte tuto syntaxi:
Get-IntelliTraceCollectionStatus
Pokud chcete zastavit shromažďování dat, použijte tuto syntaxi:
Stop-IntelliTraceCollection
"
<Fond> aplikací"
Důležité
Po spuštění tohoto příkazu zadejte Y a potvrďte, že chcete zastavit shromažďování dat. V opačném případě může kolektor pokračovat ve shromažďování dat, soubor iTrace zůstane uzamčen nebo soubor nemusí obsahovat žádná užitečná data.
Shromažďování dat ze spravované aplikace
Pokud chcete spustit aplikaci a současně shromažďovat data, použijte tuto syntaxi:
<FullPathToIntelliTraceCollectorExecutable><
\IntelliTraceSC.exe launch /cp:
PathToCollectionPlan></f:
FullPathToITraceFileDirectoryAndFileName> <PathToAppExecutableFileAndFileName>Pokud například chcete shromažďovat data z aplikace s názvem Moje aplikace:
C:IntelliTraceCollectorIntelliTraceSC.exe launch /cp:"C:IntelliTraceCollectorcollection_plan.ASP.NET.default.xml" /f:"C:IntelliTraceLogFilesMyApp.itrace" "C:MyAppMyApp.exe"
Název Popis FullPathToIntelliTraceCollectorExecutable Úplná cesta ke spustitelnému souboru kolektoru IntelliTraceSC.exe PathToCollectionPlan Cesta k plánu kolekce, .xml souboru, který konfiguruje nastavení kolektoru.
Můžete zadat plán, který je součástí kolektoru. 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 požadavků webového serveru.
- collection_plan. ASP. NET.trace.xml
Shromažďuje volání funkcí a všechna data v collection_plan. ASP. NET.default.xml. Tento plán je vhodný pro podrobnou analýzu, ale může zpomalit vaši aplikaci více než collection_plan. ASP. NET.default.xml.
Abyste se vyhnuli zpomalení aplikace, přizpůsobte si tyto plány nebo vytvořte vlastní plán. Pro zabezpečení umístěte všechny vlastní plány do stejného zabezpečeného umístění jako soubory kolektoru. Viz Vytváření a přizpůsobení plánů kolekce IntelliTrace a Návody získat nejvíce dat bez zpomalení aplikace? Poznámka: Ve výchozím nastavení je maximální velikost souboru .iTrace 100 MB. Když soubor .iTrace dosáhne tohoto limitu, kolektor odstraní nejstarší položky souboru, aby místo pro novější položky. Pokud chcete tento limit změnit, upravte atribut plánuMaximumLogFileSize
kolekce.
Kde najdu lokalizované verze těchto plánů kolekce?
Lokalizované plány najdete v podsložkách kolektoru.FullPathToITraceFileDirectoryAndFileName Úplná cesta k adresáři souboru .iTrace a název souboru .iTrace s příponou .itrace . Poznámka zabezpečení: Zadejte úplnou cestu, nikoli relativní cestu. PathToAppExecutableFileAndFileName Cesta a název souboru spravované aplikace Ukončením aplikace zastavte shromažďování dat.
Otevření souboru .iTrace v sadě Visual Studio Enterprise
Poznámka:
Pokud chcete ladit pomocí IntelliTrace a krokovat kód, musíte mít odpovídající zdrojové soubory a soubory symbolů. Viz Diagnostika problémů po nasazení.
Přesuňte soubor .iTrace nebo ho zkopírujte do počítače se sadou Visual Studio Enterprise (ale ne edice Professional nebo Community).
Poklikejte na soubor .iTrace mimo Visual Studio nebo ho otevřete v sadě Visual Studio.
Visual Studio zobrazuje stránku souhrnu IntelliTrace. Ve většině oddílů můžete zkontrolovat události nebo jiné položky, vybrat položku a spustit ladění pomocí IntelliTrace v místě, kde a kdy došlo k události. Viz Použití uložených dat IntelliTrace.
Poznámka:
Pokud chcete ladit pomocí IntelliTrace a krokovat kód, musíte mít na vývojovém počítači odpovídající zdrojové soubory a soubory symbolů. Viz Diagnostika problémů po nasazení.
Návody získat nejvíce dat, aniž by se zpomalila moje aplikace?
IntelliTrace může shromažďovat velké množství dat, takže dopad na výkon vaší aplikace závisí na datech, která IntelliTrace shromažďuje, a na druhu kódu, který analyzuje. Viz Optimalizace kolekce IntelliTrace na produkčních serverech.
Tady je několik způsobů, jak získat nejvíce dat bez zpomalení aplikace:
Spusťte kolektor pouze tehdy, když si myslíte, že došlo k problému nebo když můžete problém reprodukovat.
Spusťte kolekci, reprodukujte problém a zastavte kolekci. Otevřete soubor .iTrace v sadě Visual Studio Enterprise a prozkoumejte data. Viz Otevření souboru .iTrace v sadě Visual Studio Enterprise.
U webových aplikací a sharepointových aplikací kolektor zaznamenává data pro každou aplikaci, která sdílí zadaný fond aplikací. To může zpomalit všechny aplikace, které sdílejí stejný fond aplikací, i když v plánu kolekce můžete zadat pouze moduly pro jednu aplikaci.
Aby kolektor nemohl zpomalit jiné aplikace, hostujte každou aplikaci ve vlastním fondu aplikací.
Zkontrolujte události v plánu kolekce, pro které IntelliTrace shromažďuje data. Upravte plán kolekce a zakažte události, které nejsou relevantní nebo vás nezajímají.
Chcete-li zakázat událost, nastavte
enabled
atribut elementu<DiagnosticEventSpecification>
nafalse
:<DiagnosticEventSpecification enabled="false">
enabled
Pokud atribut neexistuje, událost je povolená.Jak se tím zlepší výkon?
Dobu spuštění můžete zkrátit zakázáním událostí, které nejsou pro aplikaci relevantní. Například zakažte události Windows Workflow pro aplikace, které nepoužívají Windows Workflow.
Výkon při spuštění i spuštění můžete zlepšit zakázáním událostí registru pro aplikace, které přistupují k registru, ale nezobrazují se problémy s nastavením registru.
Projděte si moduly v plánu kolekce, pro které IntelliTrace shromažďuje data. Upravte plán kolekce tak, aby zahrnoval pouze moduly, které vás zajímají:
Otevřete plán kolekce.
<ModuleList>
Najděte prvek.V
<ModuleList>
, nastavteisExclusionList
atribut nafalse
.Pomocí elementu
<Name>
můžete určit každý modul s jedním z následujících způsobů: název souboru, řetězcová hodnota, která bude obsahovat libovolný modul, jehož název obsahuje tento řetězec nebo veřejný klíč.Pokud například chcete shromažďovat data pouze z hlavního webového modulu webové aplikace Fabrikam Fiber Web, vytvořte seznam podobný tomuto:
<ModuleList isExclusionList="false"> <Name>FabrikamFiber.Web.dll</Name> </ModuleList>
Pokud chcete shromažďovat data z libovolného modulu, jehož název obsahuje "Fabrikam", vytvořte seznam podobný tomuto:
<ModuleList isExclusionList="false"> <Name>Fabrikam</Name> </ModuleList>
Pokud chcete shromažďovat data z modulů zadáním tokenů veřejného klíče, vytvořte seznam podobný tomuto:
<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 se tím zlepší výkon?
Tím se sníží množství informací o volání metody a dalších dat instrumentace, která IntelliTrace shromažďuje při spuštění a spuštění aplikace. Tato data vám umožní:
Krokujte kódem po shromáždění dat.
Prozkoumejte hodnoty předané a vrácené z volání funkce.
Proč místo toho moduly vyloučit?
Ve výchozím nastavení plány kolekcí vylučují moduly nastavením atributu
isExclusionList
natrue
. Vyloučení modulů ale může mít za následek shromažďování dat z modulů, které nesplňují kritéria seznamu, a nemusí vás zajímat, jako jsou moduly třetích stran nebo opensourcové moduly.
Existují nějaká data, která IntelliTrace neshromažďuje?
Ano, pokud chcete snížit dopad na výkon, IntelliTrace omezuje shromažďování dat na hodnoty primitivních datových typů předávaných metodám a vrácených z metod a k hodnotám primitivních datových typů v polích na objektech nejvyšší úrovně předávaných a vrácených z metod.
Předpokládejme například, že máte
AlterEmployee
podpis metody, který přijímá celé čísloid
aEmployee
objektoldemployee
:public Employee AlterEmployee(int id, Employee oldemployee)
Typ
Employee
má následující atributy:Id
,Name
aHomeAddress
. Mezi a typemAddress
existujeEmployee
vztah přidružení.Kolektor zaznamenává hodnoty pro
id
,Employee.Name
Employee.Id
aEmployee
objekt vrácený zAlterEmployee
metody. Kolektor však nezaznamená informace o objektuAddress
kromě toho, zda byl null nebo ne. Kolektor také nezaznamená data o místních proměnných vAlterEmployee
metodě, pokud jiné metody nepoužívají tyto místní proměnné jako parametry, ve kterých jsou zaznamenány jako parametry metody.
Kde jinde můžu získat data IntelliTrace?
Data IntelliTrace můžete získat z ladicí relace IntelliTrace v sadě Visual Studio Enterprise. Viz funkce IntelliTrace.
Zdroje dalších informací
Použití uložených dat řešení IntelliTrace
Blogy
Vzdáleně pomocí samostatného kolektoru IntelliTrace
Vytváření a přizpůsobení plánů kolekce IntelliTrace
Optimalizace kolekce IntelliTrace na produkčních serverech