Udostępnij za pośrednictwem


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.

Kod, tworzenie, zlecenia, monitor, diagnostyki, napraw

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.

  1. Edytuj definicję kompilacji lub utwórz nową definicję kompilacji.

    Widok tworzenia definicji w TFS 2013

  2. Wybierz szablon domyślny (TfvcTemplate.12.xaml) lub własny szablon niestandardowy.

    Wybierz szablon procesu kompilacji - TFS 2013

  3. 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.

    Konfigurowanie ścieżki symboli w definicji kompilacji TFS 2013

    Aby uzyskać więcej informacji o symbolach, zobacz sekcję Publikowanie danych symboli.

  4. 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.

  5. 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>

    Dołączenia informacji o serwerze kompilacji def kompilacji TFS 2013

    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" />
    
  6. 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.

  1. Na serwerze kompilacji w programie Team Foundation, należy zainstalować program Visual Studio 2013 (dowolnej wersji).

  2. 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.

  3. 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>

  4. 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.

  1. W Eksploratora rozwiązań, zwolnić projektu sieci web.

  2. 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>
    <!-- **************************************************** -->
    
  3. Zaewidencjonuj zaktualizowany plik projektu.

  4. 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

  1. 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.

  2. 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.

    Otwórz rozwiązanie z dziennika IntelliTrace

    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źć.

    Otwórz z kontroli źródła na mapowane obszaru roboczego

    W przeciwnym wypadku wybierz inny lub utwórz nowy obszar roboczy.Program Visual Studio będzie mapować całą gałąź do tego obszaru roboczego.

    Otwórz z kontroli źródła — Utwórz nowy obszar roboczy

    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ą

  1. 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.

    Wyświetl szczegóły zdarzenia wydajności

    Możesz także po prostu dwukrotnie kliknąć zdarzenie.

  2. 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.

    Uruchamianie debugowania z wywołanie metody

    Można też po prostu dwukrotnie kliknąć wywołanie.

    Jeśli metoda ta jest w kodzie aplikacji, program Visual Studio przechodzi do tej metody.

    Przejdź do kodu aplikacji z zdarzeń wydajności

    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

Co jeszcze można tu zrobić?

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.

  1. Przejdź do folderu wdrożenia swój projekt.

  2. Znajdź i otwórz manifest kompilacji (pliku BuildInfo.config).

  3. Upewnij się, że plik zawiera wymagane informacje:

Pole

Określa

ProjectName

Nazwa projektu w programie Visual Studio.Na przykład:

<ProjectName>FabrikamFiber.Extranet.Web</ProjectName>

SourceControl

Informacje o systemie kontroli źródła i te wymagane właściwości:

  • TFS

    • ProjectCollectionUri: identyfikator URI dla swojej kolekcji Team Foundation Server i project

    • ProjectItemSpec: ścieżka do pliku projektu swoją aplikację (.csproj lub .vbproj)

    • ProjectVersionSpec: wersji projektu

    Na przykład:

    <SourceControl type="TFS">
       <TfsSourceControl>
          <ProjectCollectionUri>http://fabrikamfiber:8080/tfs/FabrikamFiber</ProjectCollectionUri>
          <ProjectItemSpec>$/WorkInProgress/FabrikamFiber/FabrikamFiber.CallCenter/FabrikamFiber.Web/FabrikamFiber.Web.csproj</ProjectItemSpec>
          <ProjectVersionSpec>LFabrikamFiber_BuildAndPublish_20130813@$/WorkInProgress</ProjectVersionSpec>
       </TfsSourceControl>
    </SourceControl>
  • Git

    • GitSourceControl: lokalizacja GitSourceControl schematu

    • RepositoryUrl: identyfikator URI dla swojego programu Team Foundation Server, kolekcji projektów i repozytorium Git

    • ProjectPath: ścieżka do pliku projektu swoją aplikację (.csproj lub .vbproj)

    • CommitId: identyfikator swojego zatwierdzeń

    Na przykład:

    <SourceControl type="Git"> 
       <GitSourceControl xmlns="https://schemas.microsoft.com/visualstudio/deploymentevent_git/2013/09">
          <RepositoryUrl>http://gittf:8080/tfs/defaultcollection/_git/FabrikamFiber</RepositoryUrl>
          <ProjectPath>/FabrikamFiber.CallCenter/FabrikamFiber.Web/FabrikamFiber.Web.csproj</ProjectPath>
          <CommitId>50662c96502dddaae5cd5ced962d9f14ec5bc64d</CommitId>
       </GitSourceControl>
    </SourceControl>

Kompilacja

Informacje o systemie kompilacji, albo "TeamBuild" lub "MSBuild", i są wymagane właściwości:

  • BuildLabel (dla TeamBuild): Nazwa kompilacji i numer.Etykieta jest również używana jako nazwa zdarzenia wdrożenia.Aby uzyskać dodatkowe informacje na temat numerów kompilacji, zobacz Użycie numerów kompilacji jako opisowych nazw zakończonych kompilacji.

  • SymbolPath (zalecane): listę identyfikatorów URI dla lokalizacji symboli (PDB pliku), rozdzielone średnikami.Te identyfikatory URI może być adresów URL lub UNC.Łatwiej znaleźć zgodnych symbole pomaga z debugowaniem w programie Visual Studio.

  • BuildReportUrl (dla TeamBuild): Lokalizacja raportu kompilacji w programie TFS

  • BuildId (dla TeamBuild): szczegóły identyfikatora URI dla kompilacji w programie TFS.Ten identyfikator URI jest również używany jako identyfikator zdarzenia wdrożenia.To musi identyfikator musi być unikatowa, jeśli nie używasz TeamBuild.

  • BuiltSolution: ścieżka do pliku rozwiązania tego programu Visual Studio używa do znajdowania i otwórz zgodnych rozwiązanie.To jest zawartość właściwości MsBuild SolutionPath.

Na przykład:

  • TFS

    <Build type="TeamBuild">
       <MsBuild>
          <BuildLabel kind="label">FabrikamFiber_BuildAndPublish_20130813.1</BuildLabel>
          <SymbolPath>\\fabrikamfiber\FabrikamFiber.CallCenter\Symbols</SymbolPath>
          <BuildReportUrl kind="informative, url" url="http://fabrikamfiber:8080/tfs/FabrikamFiber/_releasePipeline/FindRelease?buildUri=fabrikamfiber%3a%2f%2f%2fBuild%2fBuild%2f448">Build Report Url</BuildReportUrl>
          <BuildId kind="id">1c4444d2-518d-4673-a590-dce2773c7744,fabrikamfiber:///Build/Build/448</BuildId>
          <BuiltSolution>$/WorkInProgress/FabrikamFiber/FabrikamFiber.CallCenter/FabrikamFiber.CallCenter.sln</BuiltSolution>
       </MsBuild>
    </Build>
  • Git

    <Build type="MSBuild"> 
       <MSBuild>
          <SymbolPath>\\gittf\FabrikamFiber.CallCenter\Symbols</SymbolPath>
          <BuiltSolution>/FabrikamFiber.CallCenter/FabrikamFiber.CallCenter.sln</BuiltSolution>
       </MSBuild>
    </Build>

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.

Otwórz z kontroli źródła z ma mapowane obszaru roboczego

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.

    Otwórz z kontroli źródła — niepołączony

  • 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.

    Otwórz z kontroli źródła — migracji

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?

Ścieżka symboli niezaufanymi debugowania?

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.