Udostępnij za pośrednictwem


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

Uwaga

Ten artykuł dotyczy programu Visual Studio 2019. Aby uzyskać informacje na temat rozwiązywania problemów w programie Visual Studio 2022, zobacz Remote Debug ASP.NET Core w usłudze aplikacja systemu Azure.

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 programistycznym, projektem internetowym i aplikacją App Service, którą skonfigurowano w części Tworzenie aplikacji ASP.NET w usłudze Azure App Service. Do sekcji WebJobs potrzebujesz aplikacji, którą utworzysz w Rozpoczynanie pracy z usługą Azure WebJobs SDK.

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 na Azure i wybierz Połącz z Subskrypcją 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 polecenie Wyświetl ustawienia.

    Wyświetlanie ustawień w Eksploratorze serwera

    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.

    Okno aplikacji internetowej platformy Azure

    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 Ustawienia aplikacji i Parametry połączenia w tym oknie, zobacz Azure App Service: Jak działają ciągi aplikacji i ciągi połączenia.

    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 wdrażasz projekt internetowy z ustawioną flagą w pliku Web.config na customErrors lub On, co oznacza, że nie otrzymujesz przydatnej informacji 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 "/":

Zrzut ekranu przedstawiający błąd serwera w aplikacji

Wystąpił błąd:

Zrzut ekranu przedstawiający przykład ogólnego błędu występującego w przeglądarce internetowej.

Witryna internetowa nie może wyświetlić strony

Zrzut ekranu przedstawiający komunikat z komunikatem **Witryna internetowa nie może wyświetlić błędu strony w przeglądarce internetowej**.

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ć i wdrożyć kompilację debugowania, ale istnieje szybszy sposób: w Web.config 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.

    Otwórz plik 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>

    Edytowanie pliku 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:

    Szczegółowy komunikat o błędzie

    (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 pozycję Ustawienia.

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

    Publikowanie w trybie debugowania

  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.

    Zrzut ekranu przedstawiający okno Eksploratora serwera z wybraną aplikacją, a następnie klikając pozycję Dołącz debuger.

    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.

    Wyświetlanie zmiennej w trybie debugowania uruchomionym na platformie 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ść dla zmiennej currentTime, na przykład "Teraz działa na platformie Azure".

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

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

    Informacje o stronie z nową wartością

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 w przypadku ciągłych zadań 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 Functions.cs.

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

    Ustawianie punktu przerwania

  4. W Eksploratorze rozwiązań, kliknij prawym przyciskiem myszy projekt internetowy (nie projekt 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 , a następnie zmień pozycję Konfiguracja na Debugowanie, a następnie kliknij pozycję Publikuj.

    Visual Studio wdraża projekty webowe i WebJob, a przeglądarka otwiera się na adres URL aplikacji na Azure.

  7. W Eksploratorze serwera rozwiń Azure > App Service > grupy > zasobów aplikacji > WebJobs > Continuous, a następnie kliknij prawym przyciskiem myszy element ContosoAdsWebJob.

  8. Kliknij pozycję Dołącz debuger.

    Zrzut ekranu Przedstawiający Eksploratora serwera z wybraną funkcją ContosoAdsWebJob w menu rozwijanym i wybraną pozycję Dołącz debuger.

    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 debugger pokazuje zawartość obiektu blobInfo, który został przekazany do metody GenerateThumbnail.

    Obiekt blobInfo w debugerze

  11. Naciśnij 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 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ę, używając danych logowania Azure, a następnie kliknij nazwę WebJob, aby przejść do strony WebJob.

    Kliknij pozycję 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.

    Szczegóły funkcji

Jeśli funkcja napisała logi, możesz kliknąć pozycję Przełącz widok, aby je zobaczyć.

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. Domyślnie ustawienie true jest aktywowane podczas publikowania konfiguracji debugowej.

    <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ślenie, czy debugować wyłącznie kod użytkownika przy użyciu Just My Code 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 sieciowy tworzy stronę HTML z dodatkowymi informacjami dotyczącymi niepomyślnych żądań HTTP (żądania, które powodują kod stanu 400 lub wyższy).
  • 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ść logów na koncie magazynowym niż w systemie plików. Jesteś ograniczony do maksymalnie 100 megabajtów logów podczas korzystania z systemu plikó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świetl dzienniki, gdy uruchamiasz projekt lokalnie.
  • 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 Controllers\HomeController.cs i zastąp metody Index, About i Contact następującym kodem, aby dodać instrukcje Trace oraz instrukcję using dla System.Diagnostics.

    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świetl dane wyjściowe śledzenia lokalnie

  1. Naciśnij 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 pokazuje wynik z instrukcji śledzenia, które dodałeś do metody Index.

    Śledzenie w oknie debug

    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 pod <system.web> w pliku Web.config, jak 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 Enter (adres URL jest podobny do http://localhost:53370/trace.axd).

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

    Zrzut ekranu przedstawia stronę Śledzenie aplikacji w przeglądarce internetowej z zaznaczoną opcją Wyświetl szczegóły na pierwszym wierszu.

    Zostanie wyświetlona strona Szczegóły żądania i w sekcji Informacje o śledzeniu zobaczysz dane wyjściowe z instrukcji śledzenia, które dodałeś do metody Index.

    Zrzut ekranu przedstawiający stronę Szczegóły żądania w przeglądarce internetowej z wyróżnionym komunikatem w sekcji Informacje o śledzeniu.

    Domyślnie trace.axd jest dostępny tylko lokalnie. Jeśli chcesz udostępnić ją ze zdalnej aplikacji, możesz dodać localOnly="false" do elementu trace 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świetl dane wyjściowe śledzenia w 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 nie został wyczyszczony docelowy adres URL).

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

    Zrzut ekranu Eksploratora serwera po kliknięciu prawym przyciskiem myszy aplikacji z wybraną pozycją Wyświetl dzienniki przesyłania strumieniowego w nowym oknie.

    W oknie Wyjściowym widać, że jesteś połączony z usługą przesyłania strumieniowego dzienników, i co minutę, gdy nie ma nowych dzienników do wyświetlenia, dodawany jest wiersz powiadomienia.

    Zrzut ekranu przedstawiający okno Dane wyjściowe z przykładem połączenia z usługą przesyłania strumieniowego dzienników z wierszami powiadomień.

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

    W ciągu kilku sekund wynik śladu błędów, który dodałeś do Contact metody, pojawia się w oknie Wynik.

    Ślad błędu w oknie wyników

    Program Visual Studio wyświetla tylko logi błędów, ponieważ jest to ustawienie domyślne po uruchomieniu 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:

    Wylogowanie aplikacji

    Jednak po wybraniu opcji Wyświetl dzienniki przesyłania strumieniowego program Visual Studio automatycznie zmienił 'Application Logging(File System)' na 'Error', co oznacza, że dzienniki na poziomie błędu są zgłaszane. Aby wyświetlić wszystkie dzienniki śledzenia, możesz zmienić to ustawienie na Szczegółowe. Po wybraniu poziomu istotności niższego niż błąd, zgłoszone zostaną również wszystkie dzienniki dla poziomów o wyższej istotności. Dlatego po wybraniu szczegółowego trybu 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 Szczegółowe, a następnie kliknij Zapisz.

    Ustawianie poziomu śledzenia na Szczegółowy

  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.

    Pełne dane wyjściowe śledzenia

    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 ponowne uruchomienie domeny aplikacji, podczas gdy włączanie logowania za pośrednictwem konfiguracji aplikacji nie powoduje 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:

Zrzut ekranu przedstawiający przyciski i pole tekstowe w zakładce Dzienniki Microsoft Azure w oknie Dane wyjściowe.

Wykonują one następujące funkcje:

  • Wyczyść okno Output.
  • 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, Visual Studio filtruje informacje z dziennika po stronie klienta. 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 serwerów, zmień pozycję Rejestrowanie na serwerze sieci Web na , a następnie kliknij przycisk Zapisz.

    Włącz rejestrowanie serwera WWW

  2. W oknie wyjściowym kliknij przycisk Określ, które dzienniki platformy Microsoft Azure monitorować.

    Określ, które dzienniki platformy Azure należy monitorować

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

    Monitorowanie dzienników serwera internetowego

  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żesz potrzebować poczekać, aż dzienniki się pojawią.

    Dzienniki serwera internetowego w oknie Dane wyjściowe

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ć Azure Portal, aby określić, że dzienniki serwera internetowego powinny być zapisywane w kontenerze obiektów blob na koncie magazynowym.

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.

    Włączanie szczegółowych komunikatów o błędach

  2. W oknie wyjściowym kliknij przycisk Określ, które dzienniki platformy Microsoft Azure monitorować.

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

    Monitorowanie wszystkich dzienników

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

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

    Szczegółowy dziennik błędów — okno danych wyjściowych

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

    Szczegółowy dziennik błędów — okno przeglądarki

Pobieranie dzienników systemu plików

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

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

    Zrzut ekranu okna wyjściowego z wyróżnionym przyciskiem Pobierz dzienniki przesyłania strumieniowego.

    Eksplorator plików otwiera się do folderu Pobrane z wybranym pobranym plikiem.

    Zrzut ekranu przedstawiający folder Pobrane w Eksplorator plików z wybranym pobranym plikiem.

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

    Zrzut ekranu przedstawiający strukturę folderu plików .zip po wyodrębnieniu pliku.

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

    • Dzienniki serwera sieci Web znajdują się w plikach .log 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 jest przeznaczony na pliki utworzone przez publikowanie kontroli wersji; nie ma żadnych elementów związanych z publikowaniem w programie Visual Studio. Folder Git służy do śledzenia powiązanego z publikowaniem kontroli wersji i usługą strumieniowego przesyłania 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 niepowodzeń żądań można wyświetlić w przeglądarce bezpośrednio za pośrednictwem protokołu FTP lub lokalnie, pobierając je przy użyciu narzędzia FTP 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.

    Włączanie śledzenia żądań, które zakończyło się niepowodzeniem

  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 portalu Azure Ustawienia aplikacji kliknij Poświadczenia wdrożenia, a następnie wprowadź nową nazwę użytkownika i hasło.

    Nowa nazwa i hasło użytkownika FTP

    Uwaga

    Podczas logowania musisz użyć pełnej nazwy użytkownika z prefiksem nazwy aplikacji. Na przykład, jeśli jako nazwę użytkownika wprowadzisz "myid" i witryna to "myexample", zaloguj się jako "myexample\myid".

  5. W nowym oknie przeglądarki przejdź do adresu URL wyświetlanego pod nazwą hosta FTP lub nazwą hosta FTPS na stronie Przegląd twojej 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.

    Otwórz folder LogFiles

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

    Otwórz folder W3SVC

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

    Folder W3SVC

  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.

    Śledzenie nieudanych żądań w przeglądarce

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 Porady dotyczące debugowania w programie 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 wprowadzeń do śledzenia ASP.NET 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 na rozpoczęcie 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 przesyłania strumieniowego dzienników aplikacji App Service przesyła strumieniowo dowolne pliki .txt, .html lub .log, które znajdzie 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ę Śledzenie nieudanych żądań (Using Failed Request Tracing), która może być przydatna do zrozumienia sposobu używania tych dzienników. Jednak ta dokumentacja koncentruje się głównie na konfigurowaniu śledzenia nieudanych żądań w IIS, czego nie można zrobić w Usłudze Aplikacji Azure.