Ćwiczenie — dołączanie debugera programu Visual Studio do aplikacji internetowej usługi App Service

Ukończone

Na tym etapie aplikacja jest wdrażana na platformie Azure, ale nie działa poprawnie. Aplikacja nadal działa lokalnie, więc trudno jest określić dokładnie, co powoduje problem bez dalszego badania. Program Visual Studio może łatwo pomóc rozwiązać ten problem, dołączając debuger do procesu usługi App Service na platformie Azure. To ćwiczenie umożliwia debugowanie aplikacji tak, jakby była uruchomiona lokalnie.

Uwaga

Przed podjęciem próby dołączenia debugera zawsze upewnij się, że stan kodu lokalnego jest zgodny z tym, co zostało wdrożone na platformie Azure. Gwarantuje to, że lokalne pliki symboli i kod źródłowy są zgodne z wdrożonym aplikacją. Jeśli używasz usługi Git do zarządzania projektem w rzeczywistej aplikacji, sprawdź to samo zatwierdzenie lub wydanie, które zostało wdrożone.

Konfigurowanie ustawień debugowania

Przed debugowaniem aplikacji na platformie Azure upewnij się, że wykonasz następujące kroki w programie Visual Studio, aby zapewnić powodzenie.

  1. Najpierw upewnij się, że projekt został pomyślnie skompilowany co najmniej raz. Pomyślna kompilacja gwarantuje, że kod źródłowy i wszystkie niezbędne skompilowane pliki są gotowe do użycia. Jeśli aplikacja działa lokalnie, pamiętaj, aby zatrzymać aplikację.

  2. Przejdź do pozycji Opcje debugowania > z górnego menu programu Visual Studio. Upewnij się, że pozycja Włącz tylko mój kod nie jest zaznaczona, a następnie wybierz przycisk OK.

    Zmiana tego ustawienia umożliwia programowi Visual Studio debugowanie zoptymalizowanego kodu wdrożonego na platformie Azure przy użyciu niezbędnych plików symboli z folderu lokalnego bin . Pliki symboli są używane przez debuger jako most między skompilowanym, wykonywaniem kodu i kodem źródłowym w programie Visual Studio, dlatego ważne jest, aby lokalny kod źródłowy był zgodny z wdrożonym aplikacją.

    Zrzut ekranu przedstawiający ustawienia debugowania programu Visual Studio.

Dołączanie debugera do usługi App Service

  1. W menu głównym w górnej części programu Visual Studio wybierz pozycję Debuguj dołączanie > , aby przetworzyć , aby otworzyć odpowiednie okno dialogowe. Korzystając z tego okna, możesz nawiązać połączenie i dołączyć do różnych obiektów docelowych. W takim przypadku połączysz się z wystąpieniem usługi App Service utworzonym w poprzednim kroku.

  2. Wybierz listę rozwijaną Typ połączenia i wybierz opcję Microsoft aplikacja systemu Azure Services.

  3. Wybierz przycisk Znajdź... obok pola Cel połączenia, aby otworzyć okno dialogowe umożliwiające przeglądanie subskrypcji platformy Azure i usług aplikacji.

  4. Znajdź i wybierz usługę App Service utworzoną GitHubBrowser123 w poprzednim kroku, a następnie wybierz przycisk OK.

  5. Proces w3wp.exe powinien zostać wyświetlony na liście dostępnych procesów, z którymi można się połączyć, czyli głównym procesem usługi aplikacja systemu Azure hostujących wdrożonej aplikacji. Wybierz ten proces, a następnie wybierz pozycję Dołącz w prawym dolnym rogu, aby połączyć debuger programu Visual Studio.

    Zrzut ekranu przedstawiający dołączanie do funkcji procesu.

  6. W Index.cshtml.cspliku przejdź do pierwszego wiersza OnPost metody i ustaw punkt przerwania w tej metodzie, klikając lewy margines (lub klikając prawym przyciskiem myszy i wybierając pozycję Punkt przerwania Wstaw punkt> przerwania).

    Metoda OnPost wewnątrz Index.cshtml.cs obsługuje większość logiki dla aplikacji.

  7. Opcjonalnie możesz również sprawdzić, czy program Visual Studio załadował pliki symboli dla sesji debugowania. Przejdź do pozycji Debugowanie > modułów systemu Windows>, aby otworzyć okno modułów. To okno powinno wskazywać, że pliki symboli zostały pomyślnie załadowane dla pliku przeglądarki .dll GitHub po wprowadzeniu wcześniej zmian konfiguracji just my code .

    Zrzut ekranu przedstawiający okno plików symboli.

Rozwiązywanie problemów z usterkę

Po załadowaniu symboli możesz debugować aplikację hostowaną na platformie Azure, tak jak lokalnie.

  1. Po ustawieniu punktu przerwania w programie Visual Studio przełącz się do aplikacji w przeglądarce, wprowadź wartość dotnet w polu wyszukiwania aplikacji, a następnie naciśnij pozycję Prześlij. Program Visual Studio osiągnie punkt przerwania wewnątrz OnPost metody . Synchronizacja po raz pierwszy może zająć trochę czasu. Kod podejmie próbę GitHubUrl pobrania wartości przy użyciu IConfiguration usługi. Domyślnie usługa konfiguracji ładuje wartości z appsettings.json pliku w aplikacji.

  2. Użyj przycisku przechodzenia przez krok do kontrolek debugowania programu Visual Studio (lub naciśnij klawisz F10), aby przejść do wiersza kodu, który tworzy searchUrlelement . Umieść kursor myszy nad zmienną githubUrl nad nią. Zobaczysz, że wartość jest obecnie równa null. Ten kod działał prawidłowo lokalnie, więc dlaczego wartość null jest równa null na platformie Azure?

  3. Otwórz plik, appsettings.json aby dokładniej zbadać ten plik. W tym pliku znajduje się kilka ustawień konfiguracji dotyczących rejestrowania, ale nie można odnaleźć żadnej GitHubUrl wartości.

  4. Otwórz plik appsettings.Development.json.

    Podczas konfigurowania przykładowego projektu zaktualizowano ustawienia konfiguracji w programie appsettings.Development.json. Ten plik zawiera konfiguracje, które będą stosowane tylko podczas uruchamiania podczas programowania, a nie podczas wdrażania na platformie Azure. Zapominanie o ustawieniu konfiguracji dla wersji produkcyjnej hostowanej aplikacji na platformie Azure jest typowym źródłem usterek.

    Zrzut ekranu przedstawiający ustawienia tworzenia aplikacji.

  5. GitHubUrl Skopiuj parę klucz-wartość z appsettings.Development.json i wklej ją do pliku najwyższego poziomuappsettings.json, aby te dwa pliki odpowiadały. Nowa wartość konfiguracji będzie podróżować wraz z nim w pliku po ponownym wdrożeniu appsettings.json aplikacji na platformie Azure.

    Plik appsettings.json powinien wyglądać mniej więcej tak.

    Zrzut ekranu przedstawiający ustawienia aplikacji.

  6. Odłącz debuger od usługi App Service, naciskając przycisk Zatrzymaj w górnej części programu Visual Studio, podobnie jak w przypadku lokalnej sesji debugowania.

  7. Aby ponownie wdrożyć wprowadzone zmiany, kliknij prawym przyciskiem myszy węzeł projektu w Eksplorator rozwiązań i ponownie wybierz polecenie Publikuj.

  8. Na ekranie profilu publikowania wszystkie oryginalne ustawienia wdrożenia są nadal w miejscu, więc wybierz pozycję Publikuj ponownie, aby ponownie wdrożyć na platformie Azure.

  9. Po zakończeniu wdrażania program Visual Studio uruchomi przeglądarkę, aby ponownie wyświetlić aplikację. Ponownie wprowadź ciąg dotnet w formularzu wyszukiwania i naciśnij klawisz Enter. Lista repozytoriów zostanie załadowana poprawnie.

    Gratulacje! Pomyślnie rozwiązano usterkę w usłudze aplikacja systemu Azure przy użyciu programu Visual Studio.