Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Autonomiczny moduł zbierający IntelliTrace umożliwia zbieranie danych diagnostycznych IntelliTrace dla aplikacji na serwerach produkcyjnych lub innych środowiskach bez instalowania programu Visual Studio na maszynie docelowej i bez zmieniania środowiska systemu docelowego. Autonomiczny moduł zbierający IntelliTrace działa w aplikacjach internetowych, SharePoint, WPF i Windows Forms. Po zakończeniu zbierania danych wystarczy usunąć moduł zbierający, aby go odinstalować.
Uwaga / Notatka
Aby uzyskać zalecane podejścia do diagnozowania problemów na serwerach produkcyjnych, zobacz Diagnozowanie problemów po wdrożeniu.
Wymagania
.NET Framework 3.5 lub nowszy
Program Visual Studio Enterprise (ale nie wersje Professional lub Community) na komputerze programistycznym lub innym komputerze w celu otwarcia plików iTrace
Uwaga / Notatka
Pamiętaj, aby zapisać swoje pliki symboli (.pdb). Aby debugować za pomocą funkcji IntelliTrace i przejść przez kod, musisz mieć pasujące pliki źródłowe i pliki symboli. Zobacz Diagnozowanie problemów po wdrożeniu.
Często zadawane pytania
Jak mogę uzyskać najwięcej danych bez spowalniania aplikacji?
Jakie aplikacje działają z modułem zbierającym?
ASP.NET aplikacje internetowe hostowane w usługach Internet Information Services (IIS) w wersji 7.0, 7.5, 8.0, 12.0 i 16.0
Aplikacje sharePoint 2010 i SharePoint 2013
Aplikacje Windows Presentation Foundation (WPF) i Windows Forms.
Jak mogę zacząć?
Instalowanie modułu zbierającego
Na serwerze aplikacji utwórz katalog modułu zbierającego, na przykład: C:\IntelliTraceCollector
Pobierz moduł zbierający z folderu instalacyjnego programu Visual Studio.
Skopiuj IntelliTraceCollection.cab z folderu, w którym jest zainstalowany moduł zbierający, na przykład:
.. \Microsoft Visual Studio\18\Enterprise\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace
.. \Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace
lub w przypadku poprzednich wersji programu Visual Studio:
.. \Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\12.0.0
Umieść IntelliTraceCollection.cab w katalogu modułu zbierającego, na przykład: C:\IntelliTraceCollector
Rozwiń IntelliTraceCollection.cab:
Na serwerze aplikacji otwórz okno wiersza polecenia jako administrator.
Przejdź do katalogu kolektora, na przykład: C:\IntelliTraceCollector
Użyj polecenia expand , w tym kropki (.) na końcu, aby rozwinąć IntelliTraceCollection.cab:
expand /f:* IntelliTraceCollection.cab .Uwaga / Notatka
Okres (.) zachowuje podfoldery zawierające zlokalizowane plany kolekcji.
Ustal uprawnienia dla katalogu zbierającego
Na serwerze aplikacji otwórz okno wiersza polecenia jako administrator.
Użyj polecenia icacls systemu Windows, aby przyznać administratorowi serwera pełne uprawnienia do katalogu kolektora. Przykład:
icacls "C:\IntelliTraceCollector" /grant "<Domain\AdministratorID>":FAby zbierać dane dla aplikacji internetowej lub aplikacji programu SharePoint:
Nadaj osobie, która uruchomi polecenia cmdlet programu PowerShell IntelliTrace pełne uprawnienia do katalogu modułu zbierającego.
Przykład:
icacls "C:\IntelliTraceCollector" /grant "<Domain\UserID>":FNadaj puli aplikacji dla aplikacji internetowej lub aplikacji programu SharePoint uprawnienia do odczytu i wykonywania w katalogu modułu zbierającego.
Przykład:
W przypadku aplikacji internetowej w puli aplikacji DefaultAppPool :
icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\DefaultAppPool":RXW przypadku aplikacji programu SharePoint w puli aplikacji SharePoint — 80 :
icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\SharePoint - 80":RX
Instalowanie poleceń cmdlet programu PowerShell IntelliTrace w celu zbierania danych dla aplikacji internetowych lub aplikacji programu SharePoint
Na serwerze aplikacji upewnij się, że program PowerShell jest włączony. W większości wersji systemu Windows Server można dodać tę funkcję w narzędziu administracyjnym Menedżer serwera .
Zainstaluj cmdlety IntelliTrace programu PowerShell.
Otwórz okno polecenia programu PowerShell jako administrator.
Wybierz pozycję Start, Wszystkie programy, Akcesoria, Windows PowerShell.
Wybierz jedną z następujących czynności:
W 64-bitowych systemach operacyjnych otwórz menu skrótów dla programu Windows PowerShell. Wybierz pozycję Uruchom jako administrator.
W 32-bitowych systemach operacyjnych otwórz menu skrótów dla programu Windows PowerShell (x86). Wybierz pozycję Uruchom jako administrator.
W oknie polecenia programu PowerShell użyj polecenia Import-Module , aby zaimportować Microsoft.VisualStudio.IntelliTrace.PowerShell.dll.
Przykład:
Import-Module "C:\IntelliTraceCollector\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll"
Konfigurowanie uprawnień dla katalogu plików iTrace
Na serwerze aplikacji utwórz katalog plików iTrace, na przykład: C:\IntelliTraceLogFiles
Uwaga / Notatka
- Aby uniknąć spowolnienia aplikacji, wybierz lokalizację na lokalnym dysku o dużej szybkości, który nie jest bardzo aktywny.
- Możesz umieścić pliki iTrace i pliki modułu zbierającego w tym samym miejscu. Jeśli jednak masz aplikację internetową lub aplikację programu SharePoint, upewnij się, że to miejsce znajduje się poza katalogiem hostujący aplikację.
Ważne
- Ogranicz katalog plików iTrace tylko do tych tożsamości, które muszą współpracować z modułem zbierającym. Plik iTrace może zawierać poufne informacje, takie jak dane użytkowników, bazy danych, inne lokalizacje źródłowe i parametry połączenia, ponieważ funkcja IntelliTrace może rejestrować dowolne dane przekazywane do parametrów metody lub jako wartości zwracane.
- Upewnij się, że osoby, które mogą otwierać pliki iTrace, mają uprawnienia do wyświetlania poufnych danych. Zachowaj ostrożność podczas udostępniania plików iTrace. Jeśli inne osoby muszą mieć dostęp, skopiuj pliki do bezpiecznej lokalizacji udostępnionej.
- Aby uniknąć spowolnienia aplikacji, wybierz lokalizację na lokalnym dysku o dużej szybkości, który nie jest bardzo aktywny.
W przypadku aplikacji internetowej lub aplikacji programu SharePoint nadaj jej puli aplikacji pełne uprawnienia do katalogu plików iTrace. Możesz użyć polecenia icacls systemu Windows lub użyć Eksploratora Windows (lub Eksploratora plików).
Przykład:
Aby skonfigurować uprawnienia za pomocą polecenia icacls systemu Windows:
W przypadku aplikacji internetowej w puli aplikacji DefaultAppPool :
icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\DefaultAppPool":FW przypadku aplikacji programu SharePoint w puli aplikacji SharePoint — 80 :
icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\SharePoint - 80":F— lub —
Aby skonfigurować uprawnienia za pomocą Eksploratora Windows (lub Eksploratora plików):
Otwórz Właściwości dla katalogu plików .iTrace.
Na karcie Zabezpieczenia wybierz pozycję Edytuj, Dodaj.
Upewnij się, że wbudowani administratorzy zabezpieczeń pojawiają się w polu Wybierz ten typ obiektu. Jeśli nie ma go, wybierz pozycję Typy obiektów , aby je dodać.
Upewnij się, że komputer lokalny jest wyświetlany w polu Z tej lokalizacji . Jeśli tak nie jest, wybierz pozycję Lokalizacje , aby ją zmienić.
W polu Wprowadź nazwy obiektów do wybrania dodaj pulę aplikacji dla aplikacji internetowej lub aplikacji programu SharePoint.
Wybierz pozycję Sprawdź nazwy , aby rozpoznać nazwę. Wybierz pozycję OK.
Upewnij się, że pula aplikacji ma pełną kontrolę.
Zbieranie danych z aplikacji internetowej lub aplikacji programu SharePoint
Aby rozpocząć zbieranie danych, otwórz okno polecenia programu PowerShell jako administrator, a następnie uruchom następujące polecenie:
Start-IntelliTraceCollection"<ApplicationPool>"<ŚcieżkaDoPlanuKolekcji><PełnaŚcieżkaDoKataloguZPlikamiITrace>Ważne
Po uruchomieniu tego polecenia wpisz Y , aby potwierdzić, że chcesz rozpocząć zbieranie danych.
Na przykład w celu zbierania danych z aplikacji programu SharePoint w puli aplikacji SharePoint — 80 :
Start-IntelliTraceCollection "SharePoint - 80" "C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" "C:\IntelliTraceLogFiles"Name Description Pula aplikacji Nazwa puli aplikacji, w której działa aplikacja PathToCollectionPlan Ścieżka do planu kolekcji, pliku .xml, który ustawia ustawienia kolektora.
Możesz określić plan powiązany z modułem zbierającym. Następujące plany działają w przypadku aplikacji internetowych i aplikacji programu SharePoint:
- collection_plan.ASP.NET.default.xml
Zbiera tylko zdarzenia IntelliTrace i zdarzenia programu SharePoint, w tym wyjątki, wywołania bazy danych i żądania serwera sieci Web.
- collection_plan.ASP.NET.trace.xml
Zbiera wywołania funkcji i wszystkie dane w collection_plan.ASP.NET.default.xml. Ten plan jest odpowiedni do szczegółowej analizy, ale może spowolnić działanie aplikacji więcej niż collection_plan.ASP.NET.default.xml.
Aby uniknąć spowolnienia aplikacji, dostosuj te plany lub utwórz własny plan. Aby zapewnić bezpieczeństwo, umieść wszelkie plany niestandardowe w tej samej bezpiecznej lokalizacji co pliki kolektora. Zobacz Tworzenie i dostosowywanie planów kolekcji IntelliTrace oraz Jak uzyskać najwięcej danych bez spowalniania aplikacji?Nuta: Domyślnie maksymalny rozmiar pliku iTrace wynosi 100 MB. Gdy plik iTrace osiągnie ten limit, moduł zbierający usunie najwcześniejsze wpisy pliku, aby zwolnić miejsce dla nowszych wpisów. Aby zmienić ten limit, edytuj atrybutMaximumLogFileSizeplanu kolekcji.
Gdzie można znaleźć zlokalizowane wersje tych planów kolekcji?
Zlokalizowane plany można znaleźć w podfolderach kolektora.FullPathToITraceFileDirectory Pełna ścieżka do katalogu plików iTrace. Uwaga dotycząca zabezpieczeń: Podaj pełną ścieżkę, a nie ścieżkę względną. Moduł zbierający dołącza do puli aplikacji i rozpoczyna zbieranie danych.
Czy mogę otworzyć plik iTrace w tej chwili? Nie, plik jest zablokowany podczas zbierania danych.
Odtwórz problem.
Aby utworzyć punkt kontrolny pliku iTrace, użyj następującej składni:
Checkpoint-IntelliTraceCollection"<Pula aplikacji>"Aby sprawdzić stan kolekcji, użyj następującej składni:
Get-IntelliTraceCollectionStatusAby zatrzymać zbieranie danych, użyj następującej składni:
Stop-IntelliTraceCollection"<Pula aplikacji>"Ważne
Po uruchomieniu tego polecenia wpisz Y , aby potwierdzić, że chcesz zatrzymać zbieranie danych. W przeciwnym razie moduł zbierający może kontynuować zbieranie danych, plik iTrace pozostanie zablokowany lub plik może nie zawierać żadnych przydatnych danych.
Zbieranie danych z aplikacji zarządzanej
Aby uruchomić aplikację i zebrać dane w tym samym czasie, użyj następującej składni:
<FullPathToIntelliTraceCollectorExecutable>
\IntelliTraceSC.exe launch /cp:<PathToCollectionPlan>/f:<FullPathToITraceFileDirectoryAndFileName><PathToAppExecutableFileAndFileName>Aby na przykład zbierać dane z aplikacji o nazwie MyApp:
C:IntelliTraceCollectorIntelliTraceSC.exe launch /cp:"C:IntelliTraceCollectorcollection_plan.ASP.NET.default.xml" /f:"C:IntelliTraceLogFilesMyApp.itrace" "C:MyAppMyApp.exe"Name Description FullPathToIntelliTraceCollectorExecutable Pełna ścieżka do pliku wykonywalnego modułu zbierającego IntelliTraceSC.exe PathToCollectionPlan Ścieżka do planu kolekcji, pliku .xml, który ustawia ustawienia kolektora.
Możesz określić plan powiązany z modułem zbierającym. Następujące plany działają w przypadku aplikacji zarządzanych:
- collection_plan.ASP.NET.default.xml
Zbiera tylko zdarzenia IntelliTrace, w tym wyjątki, wywołania bazy danych i żądania serwera sieci Web.
- collection_plan.ASP.NET.trace.xml
Zbiera wywołania funkcji i wszystkie dane w collection_plan.ASP.NET.default.xml. Ten plan jest odpowiedni do szczegółowej analizy, ale może spowolnić działanie aplikacji więcej niż collection_plan.ASP.NET.default.xml.
Aby uniknąć spowolnienia aplikacji, dostosuj te plany lub utwórz własny plan. Aby zapewnić bezpieczeństwo, umieść wszelkie plany niestandardowe w tej samej bezpiecznej lokalizacji co pliki kolektora. Zobacz Tworzenie i dostosowywanie planów kolekcji IntelliTrace oraz Jak uzyskać najwięcej danych bez spowalniania aplikacji?Nuta: Domyślnie maksymalny rozmiar pliku iTrace wynosi 100 MB. Gdy plik iTrace osiągnie ten limit, moduł zbierający usunie najwcześniejsze wpisy pliku, aby zwolnić miejsce dla nowszych wpisów. Aby zmienić ten limit, edytuj atrybutMaximumLogFileSizeplanu kolekcji.
Gdzie można znaleźć zlokalizowane wersje tych planów kolekcji?
Zlokalizowane plany można znaleźć w podfolderach kolektora.FullPathToITraceFileDirectoryAndFileName Pełna ścieżka do katalogu plików iTrace i nazwy pliku iTrace z rozszerzeniem itrace . Uwaga dotycząca zabezpieczeń: Podaj pełną ścieżkę, a nie ścieżkę względną. ŚcieżkaDoPlikuWykonywalnegoAplikacjiINazwaPliku Ścieżka i nazwa pliku aplikacji zarządzanej Zatrzymaj zbieranie danych, zamykając aplikację.
Otwórz plik iTrace w programie Visual Studio Enterprise
Uwaga / Notatka
Aby debugować za pomocą funkcji IntelliTrace i przejść przez kod, musisz mieć pasujące pliki źródłowe i pliki symboli. Zobacz Diagnozowanie problemów po wdrożeniu.
Przenieś plik iTrace lub skopiuj go na komputer za pomocą programu Visual Studio Enterprise (ale nie wersji Professional lub Community).
Kliknij dwukrotnie plik iTrace poza programem Visual Studio lub otwórz plik z poziomu programu Visual Studio.
Program Visual Studio wyświetla stronę Podsumowanie funkcji IntelliTrace . W większości sekcji można przeglądać zdarzenia lub inne elementy, wybierać element i rozpoczynać debugowanie za pomocą funkcji IntelliTrace w momencie, w którym i kiedy wystąpiło zdarzenie. Zobacz Using saved IntelliTrace data (Używanie zapisanych danych IntelliTrace).
Uwaga / Notatka
Aby debugować za pomocą funkcji IntelliTrace i przejść przez kod, musisz mieć pasujące pliki źródłowe i pliki symboli na komputerze deweloperskim. Zobacz Diagnozowanie problemów po wdrożeniu.
Jak uzyskać najwięcej danych bez spowalniania aplikacji?
Funkcja IntelliTrace może zbierać dużo danych, więc wpływ na wydajność aplikacji zależy od danych zbieranych przez narzędzie IntelliTrace i rodzaju kodu, który analizuje. Zobacz Optymalizowanie kolekcji IntelliTrace na serwerach produkcyjnych.
Poniżej przedstawiono kilka sposobów uzyskiwania większości danych bez spowalniania aplikacji:
Uruchom moduł zbierający tylko wtedy, gdy uważasz, że występuje problem lub kiedy można odtworzyć problem.
Rozpocznij kolekcjonowanie, odtwórz problem, a następnie zatrzymaj kolekcjonowanie. Otwórz plik iTrace w programie Visual Studio Enterprise i sprawdź dane. Zobacz Otwieranie pliku iTrace w programie Visual Studio Enterprise.
W przypadku aplikacji internetowych i aplikacji programu SharePoint moduł zbierający rejestruje dane dla każdej aplikacji, która współużytkuje określoną pulę aplikacji. Może to spowolnić dowolną aplikację, która dzieli tę samą pulę aplikacji, mimo że można określić tylko moduły dla jednej aplikacji w planie zbierania.
Aby zapobiec spowolnieniu działania innych aplikacji przez moduł zbierający, hostuj każdą aplikację we własnej puli aplikacji.
Przejrzyj zdarzenia w planie zbierania danych, dla którego IntelliTrace zbiera dane. Edytuj plan kolekcji, aby wyłączyć zdarzenia, które nie są istotne lub cię nie interesują.
Aby wyłączyć zdarzenie, ustaw
enabledatrybut dla<DiagnosticEventSpecification>elementu nafalse:<DiagnosticEventSpecification enabled="false">enabledJeśli atrybut nie istnieje, zdarzenie jest włączone.Jak to poprawi wydajność?
Możesz skrócić czas uruchamiania, wyłączając zdarzenia, które nie są istotne dla aplikacji. Na przykład wyłącz zdarzenia przepływu pracy systemu Windows dla aplikacji, które nie korzystają z przepływu pracy systemu Windows.
Wydajność uruchamiania i czasu wykonywania można poprawić, wyłączając zdarzenia rejestru dla aplikacji, które uzyskują dostęp do rejestru, ale nie pokazują problemów z ustawieniami rejestru.
Przejrzyj moduły w planie kolekcji, dla których intelliTrace zbiera dane. Edytuj plan kolekcji, aby uwzględnić tylko interesujące Cię moduły:
Otwórz plan zbioru. Znajdź element
<ModuleList>.W
<ModuleList>, ustaw atrybutisExclusionListnafalse.<Name>Użyj elementu , aby określić każdy moduł z jedną z następujących wartości: nazwa pliku, wartość ciągu w celu uwzględnienia dowolnego modułu, którego nazwa zawiera ten ciąg lub klucz publiczny.Aby na przykład zebrać dane tylko z głównego modułu aplikacji internetowej Fabrikam Fiber, utwórz taką listę:
<ModuleList isExclusionList="false"> <Name>FabrikamFiber.Web.dll</Name> </ModuleList>Aby zebrać dane z dowolnego modułu, którego nazwa zawiera nazwę "Fabrikam", utwórz listę podobną do następującej:
<ModuleList isExclusionList="false"> <Name>Fabrikam</Name> </ModuleList>Aby zbierać dane z modułów, określając ich tokeny klucza publicznego, utwórz listę podobną do następującej:
<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 poprawi wydajność?
Zmniejsza to ilość informacji o wywołaniu metody i innych danych instrumentacji, które IntelliTrace zbiera podczas uruchamiania aplikacji. Te dane umożliwiają:
Przejdź krok po kroku przez kod po zebraniu danych.
Sprawdź wartości przekazywane do wywołań funkcji oraz zwracane przez nie.
Dlaczego zamiast tego nie wykluczać modułów?
Domyślnie plany kolekcji wykluczają moduły, ustawiając
isExclusionListatrybut natrue. Jednak wykluczenie modułów może spowodować zbieranie danych z modułów, które nie spełniają kryteriów listy i może cię nie zainteresować, takich jak moduły innych firm lub open source.
Czy istnieją jakieś dane, które nie są zbierane przez funkcję IntelliTrace?
Tak, aby zmniejszyć wpływ na wydajność, funkcja IntelliTrace ogranicza zbieranie danych do wartości typów danych pierwotnych przekazywanych do metod i zwracanych z metod oraz do wartości pierwotnych typów danych w polach na obiektach najwyższego poziomu przekazywanych do metod i zwracanych z metod.
Załóżmy na przykład, że masz sygnaturę
AlterEmployeemetody, która akceptuje liczbę całkowitąidiEmployeeobiektoldemployee:public Employee AlterEmployee(int id, Employee oldemployee)Typ
Employeema następujące atrybuty:Id,NameiHomeAddress. Istnieje relacja skojarzenia międzyEmployeei typemAddress.
Moduł zbierający rejestruje wartości
id,Employee.Id,Employee.Nameoraz obiektEmployeezwrócony przez metodęAlterEmployee. Jednak moduł zbierający nie rejestruje informacji oAddressobiekcie innym niż to, czy ma wartość null, czy nie. Moduł zbierający nie rejestruje również danych dotyczących zmiennych lokalnych wAlterEmployeemetodzie, chyba że inne metody używają tych zmiennych lokalnych jako parametrów, w którym momencie są rejestrowane jako parametry metody.
Gdzie jeszcze mogę uzyskać dane IntelliTrace?
Dane IntelliTrace można pobrać z sesji debugowania IntelliTrace w programie Visual Studio Enterprise. Zobacz Funkcje IntelliTrace.
Gdzie mogę uzyskać więcej informacji?
Korzystanie z zapisanych danych IntelliTrace
Blogs
Zdalne używanie autonomicznego modułu zbierającego IntelliTrace
Tworzenie i dostosowywanie planów kolekcji IntelliTrace
Optymalizowanie kolekcji IntelliTrace na serwerach produkcyjnych