Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 .
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.
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 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 "/":
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ć 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.
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ść dla zmiennej
currentTime
, na przykład "Teraz działa 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 w przypadku ciągłych zadań 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 na pierwszej instrukcji w metodzie
GenerateThumbnail
.W Eksploratorze rozwiązań, kliknij prawym przyciskiem myszy projekt internetowy (nie projekt 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.
Visual Studio wdraża projekty webowe i WebJob, a przeglądarka otwiera się na adres URL aplikacji na Azure.
W Eksploratorze serwera rozwiń Azure > App Service > grupy > zasobów aplikacji > WebJobs > Continuous, a następnie kliknij prawym przyciskiem myszy element 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 debugger pokazuje zawartość obiektu blobInfo, który został przekazany do metody
GenerateThumbnail
.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ę, używając danych logowania Azure, a następnie kliknij nazwę WebJob, aby przejść do strony 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 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
atrybutcompilation
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
Otwórz Controllers\HomeController.cs i zastąp metody
Index
,About
iContact
następującym kodem, aby dodać instrukcjeTrace
oraz instrukcjęusing
dlaSystem.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(); }
Dodaj instrukcję
using System.Diagnostics;
na początku pliku.
Wyświetl dane wyjściowe ś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 pokazuje wynik z instrukcji śledzenia, które dodałeś do metody
Index
.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 pod
<system.web>
w pliku Web.config, jak 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 Wyświetl szczegóły w pierwszym wierszu (a nie w wierszu BrowserLink).
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
.Domyślnie
trace.axd
jest dostępny tylko lokalnie. Jeśli chcesz udostępnić ją ze zdalnej aplikacji, możesz dodaćlocalOnly="false"
do elementutrace
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
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 został wyczyszczony docelowy adres URL).
W Eksploratorze serwera kliknij prawym przyciskiem myszy aplikację i wybierz pozycję Wyświetl dzienniki przesyłania strumieniowego.
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.
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.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:
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.
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 Szczegółowe, a następnie kliknij 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 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:
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ć.
Na karcie Konfiguracja aplikacji internetowej platformy Azure, która została otwarta w Eksploratorze serwerów, zmień pozycję Rejestrowanie na serwerze sieci Web na Wł, a następnie kliknij przycisk Zapisz.
W oknie wyjściowym kliknij przycisk Określ, które dzienniki platformy Microsoft Azure monitorować.
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żesz potrzebować poczekać, aż dzienniki się pojawią.
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ć.
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 wyjściowym kliknij przycisk Określ, które dzienniki platformy Microsoft Azure monitorować.
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 logi, które można monitorować w oknie Dane wyjściowe, można również pobrać w pliku .zip.
W oknie Dane wyjściowe kliknij pozycję Pobierz dzienniki przesyłania strumieniowego.
Eksplorator plików otwiera się do folderu Pobrane 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 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.
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 portalu Azure Ustawienia aplikacji kliknij 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. Na przykład, jeśli jako nazwę użytkownika wprowadzisz "myid" i witryna to "myexample", zaloguj się jako "myexample\myid".
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.
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 nieudanych żądań, oraz plik XSL, którego przeglądarka może używać do formatowania 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ą.
- Narzędzia online Usługi Aplikacji Azure, 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 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 App Service Azure.
- Wprowadzenie do zdalnego debugowania Azure App Service, część 2 - wnętrze zdalnego debugowania
- Wprowadzenie do zdalnego debugowania w usłudze Azure App Service — część 3 — środowisko multi-instancji 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 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:
Monitorowanie i telemetria (tworzenie rzeczywistych aplikacji w chmurze za pomocą platformy Azure).
Rozdział e-booka z zaleceniami dotyczącymi śledzenia w aplikacjach w chmurze 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 ASP.NET MVC Razor
Poza śledzeniem w widokach Razor, post wyjaśnia również, jak utworzyć filtr błędów, aby rejestrować wszystkie 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; }
Logowanie w trybie przesyłania strumieniowego śladów diagnostycznych z poziomu wiersza polecenia platformy Azure (plus Glimpse!)
Jak używać wiersza poleceń, aby osiągnąć to, czego naucza ten samouczek w programie Visual Studio. Spojrzenie to narzędzie do debugowania aplikacji ASP.NET.
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:
-
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ę Ś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.