Rozwiązywanie problemów z aplikacją w usłudze aplikacja systemu Azure przy użyciu programu Visual Studio

Omówienie

W tym samouczku pokazano, jak używać narzędzi programu Visual Studio do debugowania aplikacji w usłudze App Service, uruchamiając tryb debugowania zdalnie lub wyświetlając dzienniki aplikacji i dzienniki serwera internetowego.

Dowiesz się:

  • Które funkcje zarządzania aplikacjami są dostępne w programie Visual Studio.
  • Jak używać widoku zdalnego programu Visual Studio do wprowadzania szybkich zmian w aplikacji zdalnej.
  • Jak uruchomić tryb debugowania zdalnie, gdy projekt jest uruchomiony na platformie Azure, zarówno dla aplikacji, jak i zadania WebJob.
  • Jak utworzyć dzienniki śledzenia aplikacji i wyświetlić je podczas tworzenia aplikacji.
  • Jak wyświetlać dzienniki serwera internetowego, w tym szczegółowe komunikaty o błędach i śledzenie żądań, które zakończyły się niepowodzeniem.
  • Jak wysyłać dzienniki diagnostyczne do konta usługi Azure Storage i wyświetlać je tam.

Jeśli masz program Visual Studio Ultimate, możesz również użyć funkcji IntelliTrace do debugowania. Funkcja IntelliTrace nie jest omówiona w tym samouczku.

Wymagania wstępne

Ten samouczek współpracuje ze środowiskiem projektowym, projektem internetowym i aplikacją usługi App Service skonfigurowaną w temacie Tworzenie aplikacji ASP.NET w usłudze aplikacja systemu Azure Service. W sekcjach zadań WebJob potrzebujesz aplikacji utworzonej w temacie Rozpoczynanie pracy z zestawem SDK usługi Azure WebJobs.

Przykłady kodu pokazane w tym samouczku dotyczą aplikacji internetowej MVC w języku C#, ale procedury rozwiązywania problemów są takie same w przypadku aplikacji Visual Basic i Web Forms.

W tym samouczku założono, że używasz programu Visual Studio 2019.

Funkcja dzienników przesyłania strumieniowego działa tylko w przypadku aplikacji przeznaczonych dla programu .NET Framework 4 lub nowszego.

Konfiguracja aplikacji i zarządzanie nimi

Program Visual Studio zapewnia dostęp do podzestawu funkcji zarządzania aplikacjami i ustawień konfiguracji dostępnych w witrynie Azure Portal. W tej sekcji zobaczysz, co jest dostępne przy użyciu Eksploratora serwera. Aby wyświetlić najnowsze funkcje integracji platformy Azure, wypróbuj również usługę Cloud Explorer . Oba okna można otworzyć z menu Widok .

  1. Jeśli nie zalogowaliśmy się jeszcze do platformy Azure w programie Visual Studio, kliknij prawym przyciskiem myszy pozycję Azure i wybierz pozycję Połączenie do subskrypcji platformy Microsoft Azure w Eksploratorze serwera.

    Alternatywą jest zainstalowanie certyfikatu zarządzania, który umożliwia dostęp do konta. Jeśli zdecydujesz się zainstalować certyfikat, kliknij prawym przyciskiem myszy węzeł platformy Azure w Eksploratorze serwera, a następnie wybierz polecenie Zarządzaj i filtruj subskrypcje w menu kontekstowym. W oknie dialogowym Zarządzanie subskrypcjami platformy Microsoft Azure kliknij kartę Certyfikaty, a następnie kliknij przycisk Importuj. Postępuj zgodnie z instrukcjami pobierania, a następnie zaimportuj plik subskrypcji (nazywany również plikiem publishsettings) dla konta platformy Azure.

    Uwaga

    Jeśli pobierzesz plik subskrypcji, zapisz go w folderze spoza katalogów kodu źródłowego (na przykład w folderze Pobrane), a następnie usuń go po zakończeniu importowania. Złośliwy użytkownik, który uzyskuje dostęp do pliku subskrypcji, może edytować, tworzyć i usuwać usługi platformy Azure.

    Aby uzyskać więcej informacji na temat nawiązywania połączenia z zasobami platformy Azure z poziomu programu Visual Studio, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

  2. W Eksploratorze serwera rozwiń węzeł Azure i rozwiń węzeł App Service.

  3. Rozwiń grupę zasobów zawierającą aplikację utworzoną w sekcji Tworzenie aplikacji ASP.NET w usłudze aplikacja systemu Azure, a następnie kliknij prawym przyciskiem myszy węzeł aplikacji i kliknij pozycję Wyświetl Ustawienia.

    View Settings in Server Explorer

    Zostanie wyświetlona karta Aplikacja internetowa platformy Azure i zobaczysz zadania zarządzania aplikacjami i konfiguracji, które są dostępne w programie Visual Studio.

    Azure Web App window

    W tym samouczku użyjesz list rozwijanych rejestrowania i śledzenia. Użyjesz również zdalnego debugowania, ale użyjesz innej metody, aby ją włączyć.

    Aby uzyskać informacje o polach Ciągi Ustawienia aplikacji i Połączenie ion w tym oknie, zobacz aplikacja systemu Azure Service: How Application Strings and Połączenie ion Strings Work (Jak działają ciągi aplikacji i ciągi Połączenie ion).

    Jeśli chcesz wykonać zadanie zarządzania aplikacjami, których nie można wykonać w tym oknie, kliknij pozycję Otwórz w portalu zarządzania, aby otworzyć okno przeglądarki w witrynie Azure Portal.

Uzyskiwanie dostępu do plików aplikacji w Eksploratorze serwera

Zazwyczaj projekt internetowy jest wdrażany z customErrors flagą w pliku Web.config ustawionym na On wartość lub RemoteOnly, co oznacza, że nie otrzymujesz przydatnego komunikatu o błędzie, gdy coś pójdzie nie tak. W przypadku wielu błędów otrzymasz stronę podobną do jednej z następujących:

Błąd serwera w aplikacji "/":

Screenshot showing a Server Error in '/' Application error in a web browser.

Błąd:

Screenshot showing an example of a generic error occurring in a web browser.

Witryna internetowa nie może wyświetlić strony

Screenshot showing a message that reads **The website cannot display the page error in a web browser**.

Często najprostszym sposobem znalezienia przyczyny błędu jest włączenie szczegółowych komunikatów o błędach, które pierwszy z powyższych zrzutów ekranu wyjaśnia, jak to zrobić. Wymaga to zmiany w wdrożonym pliku Web.config. Plik Web.config można edytować w projekcie i ponownie wdrożyć projekt lub utworzyć Web.config przekształcenie i wdrożyć kompilację debugowania, ale istnieje szybszy sposób: w Eksplorator rozwiązań można bezpośrednio wyświetlać i edytować pliki w aplikacji zdalnej przy użyciu funkcji widoku zdalnego.

  1. W Eksploratorze serwera rozwiń węzeł Azure, rozwiń węzeł App Service, rozwiń grupę zasobów, w którą znajduje się aplikacja, a następnie rozwiń węzeł aplikacji.

    Zobaczysz węzły, które zapewniają dostęp do plików zawartości aplikacji i plików dziennika.

  2. Rozwiń węzeł Pliki i kliknij dwukrotnie plik Web.config.

    Open Web.config

    Program Visual Studio otwiera plik Web.config z aplikacji zdalnej i wyświetla ciąg [Remote] obok nazwy pliku na pasku tytułu.

  3. Dodaj następujący wiersz do system.web elementu:

    <customErrors mode="Off"></customErrors>

    Edit Web.config

  4. Odśwież przeglądarkę z wyświetlonym nieprzydatnym komunikatem o błędzie, a teraz zostanie wyświetlony szczegółowy komunikat o błędzie, taki jak poniższy przykład:

    Detailed error message

    (Wyświetlony błąd został utworzony przez dodanie wiersza wyświetlanego na czerwono do Views\Home\Index.cshtml.)

Edytowanie pliku Web.config to tylko jeden przykład scenariuszy, w których możliwość odczytywania i edytowania plików w aplikacji usługi App Service ułatwia rozwiązywanie problemów.

Zdalne debugowanie aplikacji

Jeśli szczegółowy komunikat o błędzie nie dostarcza wystarczającej ilości informacji i nie możesz ponownie utworzyć błędu lokalnie, innym sposobem rozwiązywania problemów jest zdalne uruchomienie w trybie debugowania. Punkty przerwania można ustawić, manipulować pamięcią bezpośrednio, przechodzić przez kod, a nawet zmieniać ścieżkę kodu.

Debugowanie zdalne nie działa w wersjach Express programu Visual Studio.

W tej sekcji pokazano, jak debugować zdalnie przy użyciu projektu utworzonego w sekcji Tworzenie aplikacji ASP.NET w usłudze aplikacja systemu Azure Service.

  1. Otwórz projekt internetowy utworzony w sekcji Tworzenie aplikacji ASP.NET w usłudze aplikacja systemu Azure Service.

  2. Otwórz plik Controllers\HomeController.cs.

  3. Usuń metodę About() i wstaw następujący kod w swoim miejscu.

    public ActionResult About()
    {
        string currentTime = DateTime.Now.ToLongTimeString();
        ViewBag.Message = "The current time is " + currentTime;
        return View();
    }
    
  4. Ustaw punkt przerwania w ViewBag.Message wierszu.

  5. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt, a następnie kliknij polecenie Publikuj.

  6. Z listy rozwijanej Profil wybierz ten sam profil, który został użyty w sekcji Tworzenie aplikacji ASP.NET w usłudze aplikacja systemu Azure. Następnie kliknij Ustawienia.

  7. W oknie dialogowym Publikowanie kliknij kartę Ustawienia, a następnie zmień pozycję Konfiguracja na Debugowanie, a następnie kliknij przycisk Zapisz.

    Publish in debug mode

  8. Kliknij przycisk Publikuj. Po zakończeniu wdrażania i otworzenie przeglądarki na adres URL platformy Azure aplikacji zamknij przeglądarkę.

  9. W Eksploratorze serwera kliknij prawym przyciskiem myszy aplikację, a następnie kliknij pozycję Dołącz debuger.

    Screenshot of the Server Explorer window showing an app selected and then clicking Attach Debugger.

    Przeglądarka zostanie automatycznie otwarta na stronie głównej uruchomionej na platformie Azure. Może być konieczne odczekenie 20 sekund lub tak, gdy platforma Azure konfiguruje serwer na potrzeby debugowania. To opóźnienie odbywa się tylko przy pierwszym uruchomieniu w trybie debugowania w aplikacji w okresie 48-godzinnym. Po ponownym uruchomieniu debugowania w tym samym okresie nie ma opóźnienia.

    Uwaga

    Jeśli masz problemy z uruchomieniem debugera, spróbuj to zrobić przy użyciu Eksploratora chmury zamiast Eksploratora serwera.

  10. Kliknij pozycję Informacje w menu.

    Program Visual Studio zatrzymuje się w punkcie przerwania, a kod jest uruchomiony na platformie Azure, a nie na komputerze lokalnym.

  11. Umieść kursor na zmiennej, currentTime aby wyświetlić wartość czasu.

    View variable in debug mode running in Azure

    Wyświetlany czas to czas serwera platformy Azure, który może znajdować się w innej strefie czasowej niż komputer lokalny.

  12. Wprowadź nową wartość zmiennej currentTime , na przykład "Teraz uruchomiono na platformie Azure".

  13. Naciśnij klawisz F5, aby kontynuować działanie.

    Na stronie Informacje uruchomionej na platformie Azure zostanie wyświetlona nowa wartość wprowadzona do zmiennej currentTime.

    About page with new value

Remote debugging WebJobs (Zdalne debugowanie zadań WebJob)

W tej sekcji pokazano, jak debugować zdalnie przy użyciu projektu i aplikacji utworzonej w temacie Rozpoczynanie pracy z zestawem SDK usługi Azure WebJobs.

Funkcje przedstawione w tej sekcji są dostępne tylko w programie Visual Studio 2013 z aktualizacją Update 4 lub nowszą.

Zdalne debugowanie działa tylko z ciągłymi zadaniami WebJob. Zaplanowane i na żądanie zadania WebJob nie obsługują debugowania.

  1. Otwórz projekt internetowy utworzony w temacie Rozpoczynanie pracy z zestawem SDK usługi Azure WebJobs.

  2. W projekcie ContosoAdsWebJob otwórz plik Functions.cs.

  3. Ustaw punkt przerwania dla pierwszej instrukcji w metodzie GenerateThumbnail .

    Set breakpoint

  4. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt internetowy (a nie projekt zadania WebJob), a następnie kliknij pozycję Publikuj.

  5. Z listy rozwijanej Profil wybierz ten sam profil, który został użyty w temacie Rozpoczynanie pracy z zestawem SDK usługi Azure WebJobs.

  6. Kliknij kartę Ustawienia i zmień pozycję Konfiguracja na Debugowanie, a następnie kliknij przycisk Publikuj.

    Program Visual Studio wdraża projekty zadań Web i WebJob, a przeglądarka zostanie otwarta pod adresem URL platformy Azure aplikacji.

  7. W Eksploratorze serwera rozwiń węzeł Azure > App Service > grupę > zasobów aplikację > WebJobs > Continuous, a następnie kliknij prawym przyciskiem myszy pozycję ContosoAdsWebJob.

  8. Kliknij pozycję Dołącz debuger.

    Screenshot of Server Explorer showing ContosoAdsWebJob selected in the drop-down menu and Attach Debugger selected.

    Przeglądarka zostanie automatycznie otwarta na stronie głównej uruchomionej na platformie Azure. Może być konieczne odczekenie 20 sekund lub tak, gdy platforma Azure konfiguruje serwer na potrzeby debugowania. To opóźnienie odbywa się tylko przy pierwszym uruchomieniu w trybie debugowania w aplikacji w okresie 48-godzinnym. Po ponownym uruchomieniu debugowania w tym samym okresie nie ma opóźnienia.

  9. W przeglądarce internetowej otwartej na stronie głównej aplikacji Contoso Ads utwórz nową reklamę.

    Utworzenie reklamy powoduje utworzenie komunikatu kolejki, który jest pobierany przez obiekt WebJob i przetwarzany. Gdy zestaw SDK usługi WebJobs wywołuje funkcję w celu przetworzenia komunikatu w kolejce, kod trafi do punktu przerwania.

  10. Gdy debuger ulegnie awarii w punkcie przerwania, możesz sprawdzić i zmienić wartości zmiennych, gdy program uruchamia chmurę. Na poniższej ilustracji debuger przedstawia zawartość obiektu blobInfo przekazanego GenerateThumbnail do metody.

    blobInfo object in debugger

  11. Naciśnij klawisz F5, aby kontynuować działanie.

    Metoda GenerateThumbnail kończy tworzenie miniatury.

  12. W przeglądarce odśwież stronę Indeks i zobaczysz miniaturę.

  13. W programie Visual Studio naciśnij klawisze SHIFT+F5, aby zatrzymać debugowanie.

  14. W Eksploratorze serwera kliknij prawym przyciskiem myszy węzeł ContosoAdsWebJob i kliknij pozycję Wyświetl pulpit nawigacyjny.

  15. Zaloguj się przy użyciu poświadczeń platformy Azure, a następnie kliknij nazwę zadania WebJob, aby przejść do strony zadania WebJob.

    Click ContosoAdsWebJob

    Pulpit nawigacyjny pokazuje, że GenerateThumbnail funkcja została ostatnio wykonana.

    (Następnym kliknięciem Wyświetl pulpit nawigacyjny, nie musisz się logować, a przeglądarka przechodzi bezpośrednio do strony zadania WebJob).

  16. Kliknij nazwę funkcji, aby wyświetlić szczegółowe informacje o wykonaniu funkcji.

    Function details

Jeśli funkcja napisała dzienniki, możesz kliknąć pozycję PrzełączOutput , aby je wyświetlić.

Notes about remote debugging (Uwagi dotyczące zdalnego debugowania)

  • Uruchamianie w trybie debugowania w środowisku produkcyjnym nie jest zalecane. Jeśli aplikacja produkcyjna nie jest skalowana w poziomie do wielu wystąpień serwera, debugowanie uniemożliwia serwerowi sieci Web odpowiadanie na inne żądania. Jeśli masz wiele wystąpień serwera internetowego, podczas dołączania do debugera otrzymasz losowe wystąpienie i nie masz możliwości upewnienia się, że kolejne żądania przeglądarki przechodzą do tego samego wystąpienia. Ponadto zazwyczaj kompilacja debugowania nie jest wdrażana w środowisku produkcyjnym, a optymalizacje kompilatora dla kompilacji wydania mogą uniemożliwić pokazanie tego, co dzieje się w wierszu w kodzie źródłowym. Aby rozwiązać problemy produkcyjne, najlepszym zasobem jest śledzenie aplikacji i dzienniki serwera internetowego.

  • Unikaj długich zatrzymań w punktach przerwania podczas zdalnego debugowania. Platforma Azure traktuje proces zatrzymany przez dłużej niż kilka minut jako proces nieodpowiadujący i wyłącza go.

  • Podczas debugowania serwer wysyła dane do programu Visual Studio, co może mieć wpływ na opłaty za przepustowość. Aby uzyskać informacje o szybkościach przepustowości, zobacz Cennik platformy Azure.

  • Upewnij się, że debug atrybut compilation elementu w pliku Web.config ma wartość true. Wartość true jest ustawiona domyślnie podczas publikowania konfiguracji kompilacji debugowania.

    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>
    
  • Jeśli okaże się, że debuger nie przechodzi do kodu, który chcesz debugować, może być konieczne zmianę ustawienia Tylko mój kod. Aby uzyskać więcej informacji, zobacz Określanie, czy debugować tylko kod użytkownika przy użyciu tylko mojego kodu w programie Visual Studio.

  • Czasomierz uruchamia się na serwerze po włączeniu funkcji zdalnego debugowania, a po 48 godzinach funkcja jest automatycznie wyłączona. Ten limit 48-godzinny jest wykonywany ze względów bezpieczeństwa i wydajności. Możesz łatwo włączyć tę funkcję tyle razy, ile chcesz. Zalecamy pozostawienie go wyłączonego, gdy nie jest aktywnie debugowane.

  • Debuger można ręcznie dołączyć do dowolnego procesu, a nie tylko proces aplikacji (w3wp.exe). Aby uzyskać więcej informacji na temat korzystania z trybu debugowania w programie Visual Studio, zobacz Debugowanie w programie Visual Studio.

Omówienie dzienników diagnostycznych

Aplikacja ASP.NET działająca w aplikacji usługi App Service może utworzyć następujące rodzaje dzienników:

  • Dzienniki śledzenia aplikacji
    Aplikacja tworzy te dzienniki, wywołując metody klasy System.Diagnostics.Trace .
  • Dzienniki serwera internetowego
    Serwer internetowy tworzy wpis dziennika dla każdego żądania HTTP do aplikacji.
  • Szczegółowe dzienniki komunikatów o błędach
    Serwer internetowy tworzy stronę HTML z dodatkowymi informacjami dotyczącymi niepomyślnych żądań HTTP (żądania, które powodują kod stanu 400 lub nowszy).
  • Dzienniki śledzenia żądań, które zakończyły się niepowodzeniem
    Serwer internetowy tworzy plik XML ze szczegółowymi informacjami o śledzeniu dla żądań HTTP, które zakończyły się niepowodzeniem. Serwer internetowy udostępnia również plik XSL do formatowania kodu XML w przeglądarce.

Rejestrowanie wpływa na wydajność aplikacji, więc platforma Azure umożliwia włączanie lub wyłączanie każdego typu dziennika zgodnie z potrzebami. W przypadku dzienników aplikacji można określić, że powinny być zapisywane tylko dzienniki powyżej określonego poziomu ważności. Podczas tworzenia nowej aplikacji domyślnie wszystkie rejestrowanie jest wyłączone.

Dzienniki są zapisywane w plikach w folderze LogFiles w systemie plików aplikacji i są dostępne za pośrednictwem protokołu FTP. Dzienniki serwera internetowego i dzienniki aplikacji można również zapisywać na koncie usługi Azure Storage. Można zachować większą ilość dzienników na koncie magazynu niż jest to możliwe w systemie plików. W przypadku korzystania z systemu plików ograniczenie do maksymalnie 100 megabajtów dzienników. (Dzienniki systemu plików są przeznaczone tylko do przechowywania krótkoterminowego. Platforma Azure usuwa stare pliki dziennika, aby zapewnić miejsce na nowe po osiągnięciu limitu).

Tworzenie i wyświetlanie dzienników śledzenia aplikacji

W tej sekcji wykonasz następujące zadania:

  • Dodaj instrukcje śledzenia do projektu internetowego utworzonego w temacie Wprowadzenie do platformy Azure i ASP.NET.
  • Wyświetlanie dzienników podczas lokalnego uruchamiania projektu.
  • Wyświetl dzienniki w miarę ich generowania przez aplikację działającą na platformie Azure.

Aby uzyskać informacje na temat tworzenia dzienników aplikacji w zadaniach WebJob, zobacz Jak pracować z usługą Azure Queue Storage przy użyciu zestawu SDK usługi WebJobs — jak zapisywać dzienniki. Poniższe instrukcje dotyczące wyświetlania dzienników i kontrolowania sposobu ich przechowywania na platformie Azure dotyczą również dzienników aplikacji utworzonych przez zadania WebJob.

Dodawanie instrukcji śledzenia do aplikacji

  1. Otwórz plik Controllers\HomeController.cs i zastąp Indexmetody , Abouti Contact następującym kodem, aby dodać Trace instrukcje i instrukcję using dla System.Diagnosticspolecenia :

    public ActionResult Index()
    {
        Trace.WriteLine("Entering Index method");
        ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
        Trace.TraceInformation("Displaying the Index page at " + DateTime.Now.ToLongTimeString());
        Trace.WriteLine("Leaving Index method");
        return View();
    }
    
    public ActionResult About()
    {
        Trace.WriteLine("Entering About method");
        ViewBag.Message = "Your app description page.";
        Trace.TraceWarning("Transient error on the About page at " + DateTime.Now.ToShortTimeString());
        Trace.WriteLine("Leaving About method");
        return View();
    }
    
    public ActionResult Contact()
    {
        Trace.WriteLine("Entering Contact method");
        ViewBag.Message = "Your contact page.";
        Trace.TraceError("Fatal error on the Contact page at " + DateTime.Now.ToLongTimeString());
        Trace.WriteLine("Leaving Contact method");
        return View();
    }        
    
  2. Dodaj instrukcję using System.Diagnostics; na początku pliku.

Wyświetlanie danych wyjściowych śledzenia lokalnie

  1. Naciśnij klawisz F5, aby uruchomić aplikację w trybie debugowania.

    Domyślny odbiornik śledzenia zapisuje wszystkie dane wyjściowe śledzenia w oknie Dane wyjściowe wraz z innymi danymi wyjściowymi debugowania. Poniższa ilustracja przedstawia dane wyjściowe z instrukcji śledzenia dodanych do Index metody .

    Tracing in Debug window

    W poniższych krokach pokazano, jak wyświetlić dane wyjściowe śledzenia na stronie internetowej bez kompilowania w trybie debugowania.

  2. Otwórz plik Web.config aplikacji (znajdujący się w folderze projektu) i dodaj <system.diagnostics> element na końcu pliku tuż przed elementem zamykającym </configuration> :

    <system.diagnostics>
    <trace>
      <listeners>
        <add name="WebPageTraceListener"
            type="System.Web.WebPageTraceListener,
            System.Web,
            Version=4.0.0.0,
            Culture=neutral,
            PublicKeyToken=b03f5f7f11d50a3a" />
      </listeners>
    </trace>
    </system.diagnostics>
    

Element WebPageTraceListener umożliwia wyświetlanie danych wyjściowych śledzenia przez przejście do elementu /trace.axd.

  1. Dodaj element śledzenia w <system.web> pliku Web.config, na przykład w poniższym przykładzie:

    <trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />
    
  2. Naciśnij klawisze CTRL+F5, aby uruchomić aplikację.

  3. Na pasku adresu okna przeglądarki dodaj ciąg trace.axd do adresu URL, a następnie naciśnij klawisz Enter (adres URL jest podobny do http://localhost:53370/trace.axd).

  4. Na stronie Śledzenie aplikacji kliknij pozycję Wyświetl szczegóły w pierwszym wierszu (a nie wiersz BrowserLink).

    Screenshot of the Application Trace page in a web browser showing View Details selected on the first line.

    Zostanie wyświetlona strona Szczegóły żądania i w sekcji Informacje o śledzeniu zostaną wyświetlone dane wyjściowe z instrukcji śledzenia dodanych Index do metody .

    Screenshot of the Request Details page in a web browser showing a message highlighted in the Trace Information section.

    Domyślnie trace.axd jest dostępny tylko lokalnie. Jeśli chcesz udostępnić ją ze zdalnej aplikacji, możesz dodać localOnly="false" go do trace elementu w pliku Web.config , jak pokazano w poniższym przykładzie:

    <trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />
    

    Jednak włączenie trace.axd w aplikacji produkcyjnej nie jest zalecane ze względów bezpieczeństwa. W poniższych sekcjach zobaczysz łatwiejszy sposób odczytywania dzienników śledzenia w aplikacji usługi App Service.

Wyświetlanie danych wyjściowych śledzenia na platformie Azure

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt internetowy i kliknij polecenie Publikuj.

  2. W oknie dialogowym Publikowanie w sieci Web kliknij pozycję Publikuj.

    Po opublikowaniu aktualizacji w programie Visual Studio zostanie otwarte okno przeglądarki na stronie głównej (przy założeniu, że na karcie Połączenie ion nie było wyczyszczenia docelowego adresu URL).

  3. W Eksploratorze serwera kliknij prawym przyciskiem myszy aplikację i wybierz pozycję Wyświetl dzienniki przesyłania strumieniowego.

    Screenshot of Server Explorer after right-clicking your app, with View Streaming Logs selected in a new window.

    W oknie Dane wyjściowe widać, że masz połączenie z usługą przesyłania strumieniowego dzienników i dodaje wiersz powiadomienia w każdej minucie bez wyświetlania dziennika.

    Screenshot of the Output window showing an example of a connection to a log-streaming service with notification lines.

  4. W oknie przeglądarki z wyświetloną stroną główną aplikacji kliknij pozycję Kontakt.

    W ciągu kilku sekund dane wyjściowe ze śladu na poziomie błędu dodanego do Contact metody są wyświetlane w oknie Dane wyjściowe .

    Error trace in Output window

    Program Visual Studio wyświetla tylko ślady na poziomie błędu, ponieważ jest to ustawienie domyślne po włączeniu usługi monitorowania dzienników. Podczas tworzenia nowej aplikacji usługi App Service wszystkie rejestrowanie jest domyślnie wyłączone, jak pokazano podczas otwierania strony ustawień wcześniej:

    Application Logging off

    Jednak po wybraniu opcji Wyświetl dzienniki przesyłania strumieniowego program Visual Studio automatycznie zmienił rejestrowanie aplikacji (system plików) na Błąd, co oznacza, że dzienniki na poziomie błędu są zgłaszane. Aby wyświetlić wszystkie dzienniki śledzenia, możesz zmienić to ustawienie na Pełne. Po wybraniu poziomu ważności niższego niż błąd zostaną również zgłoszone wszystkie dzienniki dla wyższych poziomów ważności. Dlatego po wybraniu pełnej informacji są również wyświetlane informacje, ostrzeżenia i dzienniki błędów.

  5. W Eksploratorze serwera kliknij prawym przyciskiem myszy aplikację, a następnie kliknij polecenie Wyświetl Ustawienia tak jak wcześniej.

  6. Zmień rejestrowanie aplikacji (system plików) na Pełne, a następnie kliknij przycisk Zapisz.

    Setting trace level to Verbose

  7. W oknie przeglądarki, na którym jest teraz wyświetlana strona Kontakt , kliknij pozycję Strona główna, a następnie kliknij pozycję Informacje, a następnie kliknij pozycję Kontakt.

    W ciągu kilku sekund w oknie Dane wyjściowe są wyświetlane wszystkie dane wyjściowe śledzenia.

    Verbose trace output

    W tej sekcji włączono i wyłączono rejestrowanie przy użyciu ustawień aplikacji. Można również włączyć i wyłączyć odbiorniki śledzenia, modyfikując plik Web.config. Jednak modyfikowanie pliku Web.config powoduje odtwarzanie domeny aplikacji, podczas gdy włączanie rejestrowania za pośrednictwem konfiguracji aplikacji nie robi tego. Jeśli problem trwa długo lub jest sporadycznie odtwarzany, odtwarzanie domeny aplikacji może "naprawić" i wymusić oczekiwanie, aż wystąpi ponownie. Włączenie diagnostyki na platformie Azure umożliwia natychmiastowe rozpoczęcie przechwytywania informacji o błędach bez recyklingu domeny aplikacji.

Funkcje okna danych wyjściowych

Karta Dzienniki platformy Microsoft Azure w oknie danych wyjściowych zawiera kilka przycisków i pole tekstowe:

Screenshot showing the buttons and text box of the Microsoft Azure Logs tab in the Output window.

Wykonują one następujące funkcje:

  • Wyczyść okno Dane wyjściowe.
  • Włącz lub wyłącz zawijanie wyrazów.
  • Uruchamianie lub zatrzymywanie dzienników monitorowania.
  • Określ dzienniki do monitorowania.
  • Pobierz dzienniki.
  • Filtruj dzienniki na podstawie ciągu wyszukiwania lub wyrażenia regularnego.
  • Zamknij okno Dane wyjściowe.

Jeśli wprowadzisz ciąg wyszukiwania lub wyrażenie regularne, program Visual Studio filtruje informacje rejestrowania na kliencie. Oznacza to, że można wprowadzić kryteria po wyświetleniu dzienników w oknie Dane wyjściowe i można zmienić kryteria filtrowania bez konieczności ponownego generowania dzienników.

Wyświetlanie dzienników serwera internetowego

Dzienniki serwera internetowego rejestrują wszystkie działania HTTP dla aplikacji. Aby wyświetlić je w oknie Dane wyjściowe , należy je włączyć dla aplikacji i poinformować program Visual Studio, że chcesz je monitorować.

  1. Na karcie Konfiguracja aplikacji internetowej platformy Azure, która została otwarta w Eksploratorze serwera, zmień pozycję Rejestrowanie serwera sieci Web na ., a następnie kliknij przycisk Zapisz.

    Enable web server logging

  2. W oknie Dane wyjściowe kliknij przycisk Określ dzienniki platformy Microsoft Azure do monitorowania.

    Specify which Azure logs to monitor

  3. W oknie dialogowym Opcje rejestrowania platformy Microsoft Azure wybierz pozycję Dzienniki serwera sieci Web, a następnie kliknij przycisk OK.

    Monitor web server logs

  4. W oknie przeglądarki, w których jest wyświetlana aplikacja, kliknij pozycję Strona główna, a następnie kliknij pozycję Informacje, a następnie kliknij pozycję Kontakt.

    Dzienniki aplikacji są zwykle wyświetlane jako pierwsze, a następnie dzienniki serwera internetowego. Może być konieczne poczekanie na wyświetlenie dzienników.

    Web server logs in Output window

Domyślnie po pierwszym włączeniu dzienników serwera internetowego przy użyciu programu Visual Studio platforma Azure zapisuje dzienniki w systemie plików. Alternatywnie możesz użyć witryny Azure Portal, aby określić, że dzienniki serwera internetowego powinny być zapisywane w kontenerze obiektów blob na koncie magazynu.

Jeśli używasz portalu do włączania rejestrowania serwera internetowego na koncie usługi Azure Storage, a następnie wyłączasz rejestrowanie w programie Visual Studio, po ponownym włączeniu rejestrowania w programie Visual Studio ustawienia konta magazynu zostaną przywrócone.

Wyświetlanie szczegółowych dzienników komunikatów o błędach

Szczegółowe dzienniki błędów zawierają dodatkowe informacje o żądaniach HTTP, które powodują kody odpowiedzi na błędy (400 lub nowsze). Aby wyświetlić je w oknie Dane wyjściowe , musisz je włączyć dla aplikacji i poinformować program Visual Studio, że chcesz je monitorować.

  1. Na karcie Konfiguracja aplikacji internetowej platformy Azure, która została otwarta w Eksploratorze serwera, zmień pozycję Szczegółowe komunikaty o błędach na Wł., a następnie kliknij przycisk Zapisz.

    Enable detailed error messages

  2. W oknie Dane wyjściowe kliknij przycisk Określ dzienniki platformy Microsoft Azure do monitorowania.

  3. W oknie dialogowym Opcje rejestrowania platformy Microsoft Azure kliknij pozycję Wszystkie dzienniki, a następnie kliknij przycisk OK.

    Monitor all logs

  4. Na pasku adresu okna przeglądarki dodaj dodatkowy znak do adresu URL, aby spowodować błąd 404 (na przykład http://localhost:53370/Home/Contactx), a następnie naciśnij klawisz Enter.

    Po kilku sekundach szczegółowy dziennik błędów zostanie wyświetlony w oknie Dane wyjściowe programu Visual Studio.

    Detailed error log - Output window

    Kontroluj i kliknij link, aby wyświetlić dane wyjściowe dziennika sformatowane w przeglądarce:

    Detailed error log - browser window

Pobieranie dzienników systemu plików

Wszystkie dzienniki, które można monitorować w oknie Dane wyjściowe , można również pobrać jako plik zip .

  1. W oknie Dane wyjściowe kliknij pozycję Pobierz dzienniki przesyłania strumieniowego.

    Screenshot of the Output window showing the Download Streaming Logs button highlighted.

    Eksplorator plików zostanie otwarta Pobiera folder z wybranym pobranym plikiem.

    Screenshot of the Downloads folder in File Explorer with a downloaded file selected.

  2. Wyodrębnij plik zip i zobaczysz następującą strukturę folderów:

    Screenshot of the .zip file folder structure after the file has been extracted.

    • Dzienniki śledzenia aplikacji znajdują się w plikach txt w folderze LogFiles\Application .

    • Dzienniki serwera sieci Web znajdują się w plikach dziennika w folderze LogFiles\http\RawLogs . Za pomocą narzędzia, takiego jak analizator dzienników , można wyświetlać i manipulować tymi plikami.

    • Szczegółowe dzienniki komunikatów o błędach znajdują się w plikach HTML w folderze LogFiles\DetailedErrors .

      (Folder wdrożenia dotyczy plików utworzonych przez publikowanie kontroli źródła; nie ma żadnych elementów związanych z publikowaniem w programie Visual Studio. Folder Git służy do śledzenia związanych z publikowaniem kontroli źródła i usługą przesyłania strumieniowego plików dziennika).

Wyświetlanie dzienników śledzenia żądań, które zakończyły się niepowodzeniem

Dzienniki śledzenia żądań, które zakończyły się niepowodzeniem, są przydatne, gdy musisz zrozumieć, jak usługi IIS obsługują żądanie HTTP, w scenariuszach, takich jak ponowne zapisywanie adresów URL lub problemy z uwierzytelnianiem.

Aplikacje usługi App Service korzystają z tej samej funkcji śledzenia żądań, która została udostępniona w usługach IIS 7.0 lub nowszych. Nie masz jednak dostępu do ustawień usług IIS, które konfigurują, które błędy są rejestrowane. Po włączeniu śledzenia żądań, które zakończyło się niepowodzeniem, wszystkie błędy są przechwytywane.

Śledzenie żądań nieudanych można włączyć przy użyciu programu Visual Studio, ale nie można ich wyświetlić w programie Visual Studio. Te dzienniki to pliki XML. Usługa dziennika przesyłania strumieniowego monitoruje tylko pliki, które są uznawane za czytelne w trybie zwykłego tekstu: pliki txt, HTML i .log.

Dzienniki śledzenia żądań niepomyślnych można wyświetlić w przeglądarce bezpośrednio za pośrednictwem protokołu FTP lub lokalnie po użyciu narzędzia FTP, aby pobrać je na komputer lokalny. W tej sekcji wyświetlisz je bezpośrednio w przeglądarce.

  1. Na karcie Konfiguracja okna Aplikacja internetowa platformy Azure, które otwarto w Eksploratorze serwera, zmień pozycję Śledzenie żądań nieudanych na Włączone, a następnie kliknij przycisk Zapisz.

    Enable failed request tracing

  2. Na pasku adresu okna przeglądarki, w którym jest wyświetlana aplikacja, dodaj dodatkowy znak do adresu URL i kliknij przycisk Enter, aby spowodować błąd 404.

    Powoduje to utworzenie dziennika śledzenia żądań, które nie powiodło się, a poniższe kroki pokazują, jak wyświetlić lub pobrać dziennik.

  3. W programie Visual Studio na karcie Konfiguracja okna Aplikacja internetowa platformy Azure kliknij pozycję Otwórz w portalu zarządzania.

  4. Na stronie Azure Portal Ustawienia aplikacji kliknij pozycję Poświadczenia wdrożenia, a następnie wprowadź nową nazwę użytkownika i hasło.

    New FTP user name and password

    Uwaga

    Podczas logowania musisz użyć pełnej nazwy użytkownika z prefiksem nazwy aplikacji. Jeśli na przykład wprowadzisz ciąg "myid" jako nazwę użytkownika, a witryna to "myexample", zaloguj się jako "myexample\myid".

  5. W nowym oknie przeglądarki przejdź do adresu URL wyświetlanego w obszarze nazwa hosta FTP lub nazwę hosta FTPS na stronie Przegląd aplikacji.

  6. Zaloguj się przy użyciu utworzonych wcześniej poświadczeń FTP (w tym prefiksu nazwy aplikacji dla nazwy użytkownika).

    W przeglądarce jest wyświetlany folder główny aplikacji.

  7. Otwórz folder LogFiles.

    Open LogFiles folder

  8. Otwórz folder o nazwie W3SVC oraz wartość liczbową.

    Open W3SVC folder

    Folder zawiera pliki XML dla błędów, które zostały zarejestrowane po włączeniu śledzenia żądań niepomyślnych, oraz plik XSL, którego przeglądarka może używać do formatowania kodu XML.

    W3SVC folder

  9. Kliknij plik XML dla żądania, dla którego chcesz wyświetlić informacje o śledzeniu.

    Poniższa ilustracja przedstawia część informacji śledzenia dla przykładowego błędu.

    Failed request tracing in browser

Następne kroki

Wiesz już, jak program Visual Studio ułatwia wyświetlanie dzienników utworzonych przez aplikację usługi App Service. W poniższych sekcjach znajdują się linki do dodatkowych zasobów dotyczących powiązanych tematów:

  • Rozwiązywanie problemów z usługą App Service
  • Debugowanie w Visual Studio
  • Zdalne debugowanie na platformie Azure
  • Śledzenie w aplikacjach ASP.NET
  • Analizowanie dzienników serwera internetowego
  • Analizowanie dzienników śledzenia żądań, które zakończyły się niepowodzeniem
  • Debugowanie usług w chmurze

Rozwiązywanie problemów z usługą App Service

Aby uzyskać więcej informacji na temat rozwiązywania problemów z aplikacjami w usłudze aplikacja systemu Azure Service, zobacz następujące zasoby:

Aby uzyskać pomoc dotyczącą konkretnego pytania dotyczącego rozwiązywania problemów, rozpocznij wątek na jednym z następujących forów:

Debugowanie w Visual Studio

Aby uzyskać więcej informacji na temat korzystania z trybu debugowania w programie Visual Studio, zobacz Debugowanie w programie Visual Studio i Debugowanie Wskazówki za pomocą programu Visual Studio 2010.

Zdalne debugowanie na platformie Azure

Aby uzyskać więcej informacji na temat zdalnego debugowania aplikacji usługi App Service i zadań WebJob, zobacz następujące zasoby:

Jeśli aplikacja korzysta z zaplecza interfejsu API sieci Web platformy Azure lub usługi Mobile Services i musisz je debugować, zobacz Debugowanie zaplecza platformy .NET w programie Visual Studio.

Śledzenie w aplikacjach ASP.NET

Nie ma dokładnych i aktualnych wprowadzenia do ASP.NET śledzenia dostępnych w Internecie. Najlepszym rozwiązaniem jest rozpoczęcie pracy ze starymi materiałami wprowadzającymi napisanymi dla aplikacji Web Forms, ponieważ mvC jeszcze nie istnieje, i uzupełnij je nowszymi wpisami w blogu, które koncentrują się na konkretnych problemach. Niektóre dobre miejsca do uruchomienia to następujące zasoby:

W przypadku rejestrowania błędów alternatywą pisania własnego kodu śledzenia jest użycie struktury rejestrowania typu open source, takiej jak ELMAH. Aby uzyskać więcej informacji, zobacz wpisy scotta Hanselmana na blogu dotyczące ELMAH.

Ponadto nie musisz używać ASP.NET ani System.Diagnostics śledzenia, aby pobierać dzienniki przesyłania strumieniowego z platformy Azure. Usługa dziennika przesyłania strumieniowego aplikacji usługi App Service przesyła strumieniowo dowolny plik txt, html lub .log , który znajduje w folderze LogFiles . W związku z tym można utworzyć własny system rejestrowania, który zapisuje w systemie plików aplikacji, a plik jest automatycznie przesyłany strumieniowo i pobierany. Wystarczy napisać kod aplikacji, który tworzy pliki w folderze d:\home\logfiles .

Analizowanie dzienników serwera internetowego

Aby uzyskać więcej informacji na temat analizowania dzienników serwera internetowego, zobacz następujące zasoby:

Analizowanie dzienników śledzenia żądań, które zakończyły się niepowodzeniem

Witryna internetowa Microsoft TechNet zawiera sekcję Using Failed Request Tracing (Korzystanie z śledzenia żądań nieudanych), która może być przydatna do zrozumienia sposobu używania tych dzienników. Jednak ta dokumentacja koncentruje się głównie na konfigurowaniu śledzenia żądań, które nie powiodło się w usługach IIS, których nie można wykonać w usłudze aplikacja systemu Azure Service.