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 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 .
Jeśli nie zalogowaliśmy się jeszcze do platformy Azure w programie Visual Studio, kliknij prawym przyciskiem myszy pozycję Azure i wybierz pozycję 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.
W Eksploratorze serwera rozwiń węzeł Azure i rozwiń węzeł App Service.
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.
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.
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 aplikacja systemu Azure Service: How Application Strings and Connection Strings Work (Ustawienia aplikacji i parametry 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 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 "/":
Wystąpił błąd:
Witryna internetowa nie może wyświetlić strony
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.
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.
Rozwiń węzeł Pliki i kliknij dwukrotnie 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.
Dodaj następujący wiersz do
system.web
elementu:<customErrors mode="Off"></customErrors>
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:
(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.
Otwórz projekt internetowy utworzony w sekcji Tworzenie aplikacji ASP.NET w usłudze aplikacja systemu Azure Service.
Otwórz plik Controllers\HomeController.cs.
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(); }
Ustaw punkt przerwania w
ViewBag.Message
wierszu.W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt, a następnie kliknij polecenie Publikuj.
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.
W oknie dialogowym Publikowanie kliknij kartę Ustawienia, a następnie zmień pozycję Konfiguracja na Debugowanie, a następnie kliknij przycisk Zapisz.
Kliknij przycisk Publikuj. Po zakończeniu wdrażania i otworzenie przeglądarki na adres URL platformy Azure aplikacji zamknij przeglądarkę.
W Eksploratorze serwera kliknij prawym przyciskiem myszy aplikację, a następnie kliknij 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.
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.
Umieść kursor na zmiennej,
currentTime
aby wyświetlić wartość czasu.Wyświetlany czas to czas serwera platformy Azure, który może znajdować się w innej strefie czasowej niż komputer lokalny.
Wprowadź nową wartość zmiennej
currentTime
, na przykład "Teraz uruchomiono na platformie Azure".Naciśnij F5, aby kontynuować działanie.
Na stronie Informacje uruchomionej na platformie Azure zostanie wyświetlona nowa wartość wprowadzona do zmiennej currentTime.
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.
Otwórz projekt internetowy utworzony w temacie Rozpoczynanie pracy z zestawem SDK usługi Azure WebJobs.
W projekcie ContosoAdsWebJob otwórz Functions.cs.
Ustaw punkt przerwania dla pierwszej instrukcji w metodzie
GenerateThumbnail
.W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt internetowy (a nie projekt zadania WebJob), a następnie kliknij pozycję Publikuj.
Z listy rozwijanej Profil wybierz ten sam profil, który został użyty w temacie Rozpoczynanie pracy z zestawem SDK usługi Azure WebJobs.
Kliknij kartę Ustawienia , a następnie zmień pozycję Konfiguracja na Debugowanie, a następnie kliknij pozycję Publikuj.
Program Visual Studio wdraża projekty zadań Web i WebJob, a przeglądarka zostanie otwarta pod adresem URL platformy Azure aplikacji.
W Eksploratorze serwera rozwiń węzeł Azure > App Service > grupę > zasobów aplikację > WebJobs > Continuous, a następnie kliknij prawym przyciskiem myszy pozycję ContosoAdsWebJob.
Kliknij 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.
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.
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.Naciśnij F5, aby kontynuować działanie.
Metoda
GenerateThumbnail
kończy tworzenie miniatury.W przeglądarce odśwież stronę Indeks i zobaczysz miniaturę.
W programie Visual Studio naciśnij SHIFT+F5, aby zatrzymać debugowanie.
W Eksploratorze serwera kliknij prawym przyciskiem myszy węzeł ContosoAdsWebJob i kliknij pozycję Wyświetl pulpit nawigacyjny.
Zaloguj się przy użyciu poświadczeń platformy Azure, a następnie kliknij nazwę zadania WebJob, aby przejść do strony zadania WebJob.
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).
Kliknij nazwę funkcji, aby wyświetlić szczegółowe informacje o wykonaniu funkcji.
Jeśli funkcja napisała dzienniki, możesz kliknąć pozycję PrzełączOutput , aby je wyświetlić.
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
atrybutcompilation
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
Otwórz plik Controllers\HomeController.cs i zastąp
Index
metody ,About
iContact
następującym kodem, aby dodaćTrace
instrukcje i instrukcjęusing
dlaSystem.Diagnostics
polecenia :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(); }
Dodaj instrukcję
using System.Diagnostics;
na początku pliku.
Wyświetlanie danych wyjściowych śledzenia lokalnie
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 przedstawia dane wyjściowe z instrukcji śledzenia dodanych do
Index
metody .W poniższych krokach pokazano, jak wyświetlić dane wyjściowe śledzenia na stronie internetowej bez kompilowania w trybie debugowania.
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
.
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" />
Naciśnij klawisze CTRL+F5, aby uruchomić aplikację.
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
).Na stronie Śledzenie aplikacji kliknij pozycję Wyświetl szczegóły w pierwszym wierszu (a nie wiersz BrowserLink).
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 .Domyślnie
trace.axd
jest dostępny tylko lokalnie. Jeśli chcesz udostępnić ją ze zdalnej aplikacji, możesz dodaćlocalOnly="false"
go dotrace
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
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt internetowy i kliknij polecenie Publikuj.
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 było wyczyszczenie docelowego adresu URL).
W Eksploratorze serwera kliknij prawym przyciskiem myszy aplikację i wybierz pozycję Wyświetl dzienniki przesyłania strumieniowego.
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.
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 .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:
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.
W Eksploratorze serwera kliknij prawym przyciskiem myszy aplikację, a następnie kliknij polecenie Wyświetl ustawienia tak jak wcześniej.
Zmień rejestrowanie aplikacji (system plików) na Pełne, a następnie kliknij przycisk Zapisz.
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.
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:
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ć.
Na karcie Konfiguracja aplikacji internetowej platformy Azure, która została otwarta w Eksploratorze serwera, zmień pozycję Rejestrowanie serwera sieci Web na Wł., a następnie kliknij przycisk Zapisz.
W oknie Dane wyjściowe kliknij przycisk Określ dzienniki platformy Microsoft Azure do monitorowania.
W oknie dialogowym Opcje rejestrowania platformy Microsoft Azure wybierz pozycję Dzienniki serwera sieci Web, a następnie kliknij przycisk OK.
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.
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ć.
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 oknie Dane wyjściowe kliknij przycisk Określ dzienniki platformy Microsoft Azure do monitorowania.
W oknie dialogowym Opcje rejestrowania platformy Microsoft Azure kliknij pozycję Wszystkie dzienniki, a następnie kliknij przycisk OK.
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.
Kontroluj i kliknij link, aby wyświetlić dane wyjściowe dziennika sformatowane w przeglądarce:
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 .
W oknie Dane wyjściowe kliknij pozycję Pobierz dzienniki przesyłania strumieniowego.
Eksplorator plików zostanie otwarta Pobiera folder z wybranym pobranym plikiem.
Wyodrębnij plik .zip i zobaczysz następującą strukturę folderów:
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 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: .txt, .html i .log plików.
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.
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.
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.
W programie Visual Studio na karcie Konfiguracja okna Aplikacja internetowa platformy Azure kliknij pozycję Otwórz w portalu zarządzania.
Na stronie Ustawienia witryny Azure Portal aplikacji kliknij pozycję Poświadczenia wdrożenia, a następnie wprowadź nową nazwę użytkownika i hasło.
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".
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.
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.
Otwórz folder LogFiles.
Otwórz folder o nazwie W3SVC oraz wartość liczbową.
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.
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.
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:
- Jak monitorować aplikacje
- Badanie przecieków pamięci w usłudze aplikacja systemu Azure przy użyciu programu Visual Studio 2013. Wpis w blogu alm firmy Microsoft dotyczący funkcji programu Visual Studio na potrzeby analizowania problemów z pamięcią zarządzaną.
- aplikacja systemu Azure Narzędzia online usługi, o których należy wiedzieć. Wpis w blogu Amit Apple.
Aby uzyskać pomoc dotyczącą konkretnego pytania dotyczącego rozwiązywania problemów, rozpocznij wątek na jednym z następujących forów:
- Forum platformy Azure w witrynie ASP.NET.
- Forum platformy Azure w witrynie Microsoft Q&A.
- StackOverflow.com.
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:
- Wprowadzenie do zdalnego debugowania usługi aplikacja systemu Azure.
- Wprowadzenie do zdalnego debugowania aplikacja systemu Azure — część 2 — wewnątrz debugowania zdalnego
- Wprowadzenie do zdalnego debugowania w usłudze aplikacja systemu Azure — część 3 — środowisko z wieloma wystąpieniami i git
- Debugowanie zadań WebJob (wideo)
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:
Monitorowanie i telemetria (tworzenie rzeczywistych aplikacji w chmurze za pomocą platformy Azure).
Rozdział książki e-book z zaleceniami dotyczącymi śledzenia w aplikacjach w chmurze platformy Azure.śledzenie ASP.NET
Stary, ale nadal dobry zasób do podstawowego wprowadzenia do tematu.Obiekty nasłuchujące śledzenie
Informacje o odbiornikach śledzenia, ale nie wspominają o składniku WebPageTraceListener.Przewodnik: integrowanie śledzenia ASP.NET z funkcją System.Diagnostics Tracing
Ten artykuł jest również stary, ale zawiera kilka dodatkowych informacji, które artykuł wprowadzający nie obejmuje.Śledzenie w widokach Razor ASP.NET MVC
Oprócz śledzenia w widokach Razor, post wyjaśnia również, jak utworzyć filtr błędów w celu rejestrowania wszystkich nieobsługiwane wyjątki w aplikacji MVC. Aby uzyskać informacje na temat rejestrowania wszystkich nieobsługiwane wyjątki w aplikacji web Forms, zobacz przykład Global.asax w artykule Complete Example for Error Handlers on MSDN (Kompletny przykład obsługi błędów w witrynie MSDN). W formularzach MVC lub Web Forms, jeśli chcesz rejestrować pewne wyjątki, ale pozwolić, aby domyślna obsługa platformy obowiązywała dla nich, możesz przechwycić i ponownie w ten sposób, jak w poniższym przykładzie:try { // Your code that might cause an exception to be thrown. } catch (Exception ex) { Trace.TraceError("Exception: " + ex.ToString()); throw; }
Rejestrowanie śledzenia diagnostyki przesyłania strumieniowego z poziomu wiersza polecenia platformy Azure (plus spojrzenie!)
Jak używać wiersza polecenia, aby zrobić to, co w tym samouczku pokazano, jak to zrobić w programie Visual Studio. Spojrzenie to narzędzie do debugowania aplikacji ASP.NET.Używanie rejestrowania i diagnostyki usługi Web Apps — z usługą David Ebbo i dziennikami przesyłania strumieniowego z usługi Web Apps — z Davidem Ebbo
Filmy Scotta Hanselmana i Davida Ebbo.
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 wszystkie .txt, .html lub .log plik, 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:
- LogParser
Narzędzie do wyświetlania danych w dziennikach serwera internetowego (.log plików). - Rozwiązywanie problemów z wydajnością usług IIS lub błędów aplikacji przy użyciu narzędzia LogParser
Wprowadzenie do narzędzia analizatora dzienników, którego można użyć do analizowania dzienników serwera internetowego. - Wpisy w blogu Roberta McMurraya na temat korzystania z usługi LogParser
- Kod stanu HTTP w usługach IIS 7.0, IIS 7.5 i IIS 8.0
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.