Konfigurowanie wersji do diagnozowania problemów po wdrożeniu
Aby zdiagnozować problemy w swojej aplikacji sieci web ASP.NET po wdrożeniu za pomocą funkcji IntelliTrace, zawierają informacje kompilacji z wersją umożliwiają Visual Studio automatycznie znaleźć pliki źródłowe poprawne i pliki symbol, które są wymagane do debugowania w dzienniku IntelliTrace.
Jeśli używasz programu Microsoft Monitoring Agent do sterowania IntelliTrace, również należy skonfigurować konfigurowanie monitorowania wydajności aplikacji na serwerze sieci web.To rejestruje zdarzenia diagnostyczne, gdy Twoja aplikacja jest uruchamiana i zapisuje zdarzenia w pliku dziennika IntelliTrace.Następnie można Przyjrzyj się zdarzenia w programie Visual Studio Ultimate, przejdź do kodu, w którym wystąpiło zdarzenie, obejrzyj zarejestrowane wartości w danym momencie i przodu lub do tyłu poruszania się kodu, który został uruchomiony.Po znaleźć i rozwiązać ten problem, należy powtórzyć cyklu tworzenie, zlecenia i monitorować wersją, może zostać rozwiązany potencjalnych problemów w przyszłości wcześniej i szybciej.
Potrzebujesz:
Program Visual Studio 2013 lub Team Foundation Server 2013, 2012 lub 2010, ustawianie kompilacji
Agent monitorowania firmy Microsoft do monitorowania aplikacji i rekordu danych diagnostycznych
Visual Studio Ultimate 2013 do przeglądu danych diagnostycznych i debugowanie kodu z IntelliTrace
Krok 1: Obejmują tworzenie informacji z wersją
Skonfigurować Twój proces kompilacji do tworzenia manifestu kompilacji (pliku BuildInfo.config) dla projektu sieci web i dodać ten manifest z wersjami.Ten manifest zawiera informacje dotyczące projektu, kontroli źródła i system kompilacji, używany do tworzenia określonych kompilacji.Informacje te pomogą Visual Studio znaleźć zgodnych źródła i symbole po otwarciu dziennika IntelliTrace do przeglądania zarejestrowanych zdarzeń.
Utwórz manifest kompilacji automatyczne tworzenie przy użyciu programu Team Foundation Server
Czy korzystasz z kontroli wersji Team Foundation lub Git, wykonaj następujące kroki.
Team Foundation Server 2013
Skonfiguruj definicję kompilacji do dodania lokalizacje źródłowe, kompilacji i symbole do manifest kompilacji (pliku BuildInfo.config).Tworzenie programu Team Foundation tworzy ten plik i automatycznie umieszczane w folderze wyjściowym swój projekt.
Edytuj definicję kompilacji lub utwórz nową definicję kompilacji.
Wybierz szablon domyślny (TfvcTemplate.12.xaml) lub własny szablon niestandardowy.
Określ, gdzie zapisać plik symboli (PDB), tak aby źródła jest automatycznie indeksowane.
Jeśli używasz szablonu niestandardowego, upewnij się, że szablon ma działanie do indeksowania źródła.Później można dodawać argumentem MSBuild, aby określić, gdzie należy zapisać pliki symboli.
Aby uzyskać więcej informacji o symbolach, zobacz sekcję Publikowanie danych symboli.
Dodaj ten argument MSBuild, aby dołączyć lokalizacje TFS i symboli w pliku manifestu kompilacji:
/p:IncludeServerNameInBuildInfo=True
Każdy, kto może uzyskiwać dostęp do serwera sieci web można zobaczyć te lokalizacje w manifeście kompilacji.Upewnij się, że serwer źródła jest bezpieczne.
Użycie szablonu niestandardowego, należy dodać ten argument MSBuild, aby określić, gdzie ma być zapisany plik symboli:
/p:BuildSymbolStorePath =<ścieżki do symboli>
Dodaj też te linie do pliku projektu sieci Web (.csproj, .vbproj):
<!-- Import the targets file. Change the folder location as necessary. --> <Import Project=""$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\BuildInfo\Microsoft.VisualStudio.ReleaseManagement.BuildInfo.targets" />
Uruchom nową kompilację.
**Step 2:**Zwolnić aplikację
Team Foundation Server 2012 lub 2010
Wykonaj następujące kroki automatyczne tworzenie manifest kompilacji (pliku BuildInfo.config) dla projektu i umieszczenie pliku w folderze wyjściowym swój projekt.Plik jest wyświetlany jako "NazwaProjektu.BuildInfo.config"w folderze wyjściowym, ale jest zmieniona"BuildInfo.config"w folderze wdrażania po opublikowaniu aplikacji.
Na serwerze kompilacji w programie Team Foundation, należy zainstalować program Visual Studio 2013 (dowolnej wersji).
W definicji kompilacji określ miejsce zapisania symboli tak, aby Twoje źródło było indeksowane automatycznie.
Jeśli używasz szablonu niestandardowego, upewnij się, że szablon ma działanie do indeksowania źródła.
Dodaj następujące argumenty MSBuild do swojej definicji kompilacji:
/p:VisualStudioVersion=12.0
/p:MSBuildAssemblyVersion=12.0
/tv:12.0
/p:IncludeServerNameInBuildInfo=True
/p:BuildSymbolStorePath =<ścieżki do symboli>
Uruchom nową kompilację.
**Step 2:**Zwolnić aplikację
Utwórz manifest kompilacji do kompilacji ręczne przy użyciu programu Visual Studio 2013
Wykonaj następujące kroki automatyczne tworzenie manifest kompilacji (pliku BuildInfo.config) dla projektu i umieszczenie pliku w folderze wyjściowym swój projekt.Plik jest wyświetlany jako "NazwaProjektu.BuildInfo.config"w folderze wyjściowym, ale jest zmieniona"BuildInfo.config"w folderze wdrażania po opublikowaniu aplikacji.
W Eksploratora rozwiązań, zwolnić projektu sieci web.
Otwórz plik projektu (.csproj, .vbproj).Dodaj te wiersze:
<!-- **************************************************** --> <!-- Build info --> <PropertyGroup> <!-- Generate the BuildInfo.config file --> <GenerateBuildInfoConfigFile>True</GenerateBuildInfoConfigFile> <!-- Include server name in build info --> <IncludeServerNameInBuildInfo>True</IncludeServerNameInBuildInfo> <!-- Include the symbols path so Visual Studio can find the matching deployed code when you start debugging. --> <BuildSymbolStorePath><path to symbols></BuildSymbolStorePath> </PropertyGroup> <!-- **************************************************** -->
Zaewidencjonuj zaktualizowany plik projektu.
Uruchom nową kompilację.
**Step 2:**Zwolnić aplikację
Utwórz manifest kompilacji do kompilacji ręczne przy użyciu MSBuild.exe
Dodaj, że te tworzenia argumenty po uruchomieniu kompilacji:
/p:GenerateBuildInfoConfigFile=True
/p:IncludeServerNameInBuildInfo=True
/p:BuildSymbolStorePath=<ścieżki do symboli>
Krok 2: Zwolnić aplikację
Jeśli użyjesz pakietu Web.Deploy utworzony przez Twój proces kompilacji do wdrożenia aplikacji, manifest kompilacji automatycznie zostanie zmieniona na "NazwaProjektu.BuildInfo.config"do"BuildInfo.config", a jest umieszczany w tym samym folderze z pliku Web.config aplikacji na serwerze sieci web.
Jeśli używasz innych metod do wdrożenia aplikacji, upewnij się, że manifest kompilacji zostanie zmieniona na "NazwaProjektu.BuildInfo.config"do"BuildInfo.config", a jest umieszczany w tym samym folderze z pliku Web.config aplikacji na serwerze sieci web.
Krok 3: Monitorowanie aplikacji
Konfigurowanie monitorowania wydajności aplikacji na serwerze sieci web, aby monitorowania aplikacji dla problemów, rejestrowanie zdarzeń diagnostycznych i zapisać tych zdarzeń w pliku dziennika IntelliTrace.Zobacz monitorowania wdrażania problemów związanych z wersjami.
Krok 4: Znaleźć problem
Konieczna będzie programu Visual Studio Ultimate 2013 na komputerze rozwoju lub innego komputera do przeglądania zarejestrowanych zdarzeń i debugowanie kodu za pomocą funkcji IntelliTrace.Można również użyć narzędzia, takie jak funkcja CodeLens, map debuger i kod mapuje pomaga zdiagnozować problem.
Otwieranie dziennika IntelliTrace i pasującego rozwiązania
Otwórz dziennik IntelliTrace (pliku .iTrace) z programu Visual Studio Ultimate 2013.Lub po prostu kliknij dwukrotnie plik, jeśli masz program Visual Studio Ultimate 2013 na tym samym komputerze.
Wybierz polecenie Otwórz rozwiązanie, aby program Visual Studio automatycznie otwierał pasujące rozwiązanie lub projekt, jeśli projekt nie został zbudowany jako część rozwiązania.W dzienniku IntelliTrace brakuje informacji o mojej wdrożonej aplikacji. Dlaczego to możliwe? Co mam zrobić?
Program Visual Studio automatycznie półki oczekujących zmian po otwarciu zgodnych rozwiązania lub projektu.Aby uzyskać więcej informacji dotyczących tego zestawu zmian odłożonych, szukaj w oknie Dane wyjściowe lub Team Explorer.
Przed wprowadzeniem zmian, upewnij się, że masz prawidłowego źródła.Jeśli używasz gałęzi, być może pracujesz w innej gałęzi niż jeśli stwierdzi, zgodne źródło, takich jak oddziałów z wersji programu Visual Studio.
Jeśli masz istniejącego obszaru roboczego mapowane na tego rozwiązania lub projektu, program Visual Studio wybiera tego obszaru roboczego do umieszczenia źródła, którego go odnaleźć.
W przeciwnym wypadku wybierz inny lub utwórz nowy obszar roboczy.Program Visual Studio będzie mapować całą gałąź do tego obszaru roboczego.
Aby utworzyć obszar roboczy z określonymi mapowaniami lub nazwą, która nie jest nazwą komputera, wybierz opcję Zarządzaj.
Dlaczego Visual Studio wskazuje, że wybrany przeze mnie obszar roboczy jest nieodpowiedni?
Dlaczego nie mogę kontynuować, dopóki nie wybiorę kolekcji zespołu lub innej kolekcji?
Diagnozowanie problemów z wydajnością
W obszarze Naruszenia wydajności przejrzyj zarejestrowane zdarzenia wydajności, ich całkowity czas realizacji i inne informacje o zdarzeniach.Następnie zagłęb się w metody, które zostały wywołane podczas zdarzenia dotyczącego wydajności.
Możesz także po prostu dwukrotnie kliknąć zdarzenie.
Na stronie zdarzeń przejrzyj czasy wykonania dla tych wywołań.Odszukaj spowalniające wywołanie w drzewie wykonywania.
Najwolniejsze wywołania pojawiają się we własnej sekcji w przypadku wielu wywołań, zagnieżdżonych lub innych.
Rozwiń to wywołanie, aby przejrzeć wszelkie zagnieżdżone wywołania i wartości, które zostały zarejestrowane w danym momencie.Następnie rozpocznij debugowanie z tego wywołania.
Można też po prostu dwukrotnie kliknąć wywołanie.
Jeśli metoda ta jest w kodzie aplikacji, program Visual Studio przechodzi do tej metody.
Teraz można przejrzeć inne zarejestrowane wartości, stos wywołań, przechodzić krokowo przez kod lub przy użyciu okna IntelliTraceprzesunąć się do tyłu lub do przodu „w czasie” między innymi metodami, które zostały wywołane podczas tego zdarzenia dotyczącego wydajności.Co to jest wszystkie te inne zdarzenia i informacje zawarte w dzienniku IntelliTrace?Co jeszcze można tu zrobić?Chcesz więcej informacji na temat zdarzeń wydajności?
Diagnozowanie wyjątku
W obszarze Dane wyjątku należy przejrzeć zarejestrowane zdarzenia wyjątków, ich typy, wiadomości oraz czas ich wystąpienia.Aby poznać więcej szczegółów związanych z kodem, rozpocznij debugowanie od ostatniego zdarzenia w grupie wyjątków.
Możesz także po prostu dwukrotnie kliknąć zdarzenie.
Jeśli wystąpił wyjątek w kodzie aplikacji, program Visual Studio przechodzi do tego miejsca.
Teraz można przejrzeć inne zarejestrowane wartości lub stos wywołań albo użyć okna IntelliTrace, aby przesunąć się do tyłu lub do przodu „w czasie” między innymi zarejestrowanymi zdarzeniami, powiązanym kodem i wartościami zarejestrowanymi w tych punktach w czasie.Co to jest wszystkie te inne zdarzenia i informacje zawarte w dzienniku IntelliTrace?
Co jeszcze można tu zrobić?
Uzyskaj więcej informacji na temat tego kodu.Aby znaleźć odwołania do tego kodu, historia zmian, pokrewne usterki, pozycje robocze, przeglądanie kodu lub testy jednostek — wszystko bez opuszczania edytora — Użyj wskaźniki CodeLens w edytorze.
Mapowanie swoje miejsce w kodzie podczas debugowania.Aby wzrokowo śledzić metody, które były nazywane podczas sesji debugowania, należy zmapować stos wywołań.
Pytania i odpowiedzi
Q: Dlaczego zawierają informacje dotyczące projektu, kontroli źródła, kompilacji i symbole z moich wersji?
Program Visual Studio na podstawie tych informacji do znalezienia rozwiązanie zgodnych i źródło wersji podczas debugowania.Po otwarciu dziennika IntelliTrace i wybierz zdarzenie, aby rozpocząć debugowanie, Visual Studio używa symbole do znalezienia i wyświetla kod którym wystąpiło zdarzenie.Można przeglądać wartości, które zostały zarejestrowane i przodu lub do tyłu poruszania się wykonywanie kodu.
Jeśli używasz TFS i tych informacji nie jest w kompilacji manfiest (pliku BuildInfo.config), Visual Studio szuka zgodne źródło i symboli na swoje aktualnie połączonych TFS.Visual Studio nie może znaleźć prawidłowego TFS lub zgodne źródło, monit o wybranie różnych TFS.
Pyt.: W dzienniku IntelliTrace brakuje informacji o mojej wdrożonej aplikacji.Dlaczego to możliwe?Co mam zrobić?
Może się to zdarzyć, gdy wdrożyć na komputerze projektowym lub nie masz połączenia z TFS podczas wdrażania.
Przejdź do folderu wdrożenia swój projekt.
Znajdź i otwórz manifest kompilacji (pliku BuildInfo.config).
Upewnij się, że plik zawiera wymagane informacje:
Pole |
Określa |
---|---|
ProjectName |
Nazwa projektu w programie Visual Studio.Na przykład:
|
SourceControl |
Informacje o systemie kontroli źródła i te wymagane właściwości:
|
Kompilacja |
Informacje o systemie kompilacji, albo "TeamBuild" lub "MSBuild", i są wymagane właściwości:
Na przykład:
|
Pyt.: Dlaczego Visual Studio wskazuje, że wybrany przeze mnie obszar roboczy jest nieodpowiedni?
Odp.: Wybrany obszar roboczy nie zawiera wszystkich mapowań między folderem kontroli źródła i folderem lokalnym.Aby utworzyć mapowanie dla tego obszaru roboczego, wybierz Zarządzaj.W przeciwnym wypadku wybierz już zmapowany obszar roboczy lub utwórz nowy.
Pyt.: Dlaczego nie mogę kontynuować, dopóki nie wybiorę kolekcji zespołu lub innej kolekcji?
Odp.: Może się to zdarzyć z następujących powodów:
Program Visual Studio nie jest połączony z TFS.
Program Visual Studio nie znalazł rozwiązania lub projektu w obecnej kolekcji zespołu.
Podczas kompilacji pliku manifestu (<NazwaProjektu>.Nie określono BuildInfo.config), gdzie znaleźć zgodne źródło, Visual Studio programu Visual Studio korzysta z TFS aktualnie podłączonych do znalezienia zgodnych rozwiązania lub projektu.Jeśli Twoja bieżąca kolekcja zespołu nie ma pasującego źródła, program Visual Studio monituje o połączenie z inną kolekcją zespołu.
Program Visual Studio nie znaleziono rozwiązania lub projektu w kolekcji określone przez plik manifestu kompilacji (<NazwaProjektu>.BuildInfo.config).
Określony TFS może już nie mieć pasującego źródła lub może już nawet nie istnieć, być może dlatego, że nastąpiła migracja do nowego TFS.Jeśli określone wystąpienie programu TFS nie istnieje, w programie Visual Studio może upłynąć limit czasu po około minucie, a następnie pojawi się monit o podłączenie do innej kolekcji.Aby kontynuować, należy połączyć się z właściwym serwerem TFS.
Pyt.: Co to jest obszar roboczy?
Odp.: Twój obszar roboczy przechowuje kopię źródła, więc możesz rozwijać i przetestować go oddzielnie przed zaewidencjonowaniem swojej pracy.Jeśli nie masz jeszcze obszaru roboczego, który jest specjalnie zmapowany na znalezione rozwiązania lub projekt, program Visual Studio wyświetli monit, aby wybrać dostępny obszar roboczy lub utworzyć nowy obszar roboczy z nazwą komputera jako domyślną nazwą obszaru roboczego.
Pyt.: Dlaczego otrzymuję komunikat dotyczący niezaufanych symboli?
Odp ten komunikat jest wyświetlane, gdy ścieżka symboli w pliku manifestu kompilacji (<NazwaProjektu>.BuildInfo.config) nie jest dołączona do listy Zaufane symbol ścieżek.Możesz dodać ścieżkę do listy ścieżek symboli w opcjach debugera.