Debugowanie aplikacji platformy ASP.NET lub ASP.NET Core w programie Visual Studio

Możesz debugować aplikacje ASP.NET i ASP.NET Core w programie Visual Studio. Proces różni się w zależności od ASP.NET i ASP.NET Core oraz tego, czy jest uruchamiany na serwerze IIS Express, czy lokalnym serwerze usług IIS.

Uwaga

Poniższe kroki i ustawienia dotyczą tylko debugowania aplikacji na serwerze lokalnym. Debugowanie aplikacji na zdalnym serwerze usług IIS używa funkcji Dołączanie do przetwarzania i ignoruje te ustawienia. Aby uzyskać więcej informacji i instrukcje dotyczące zdalnego debugowania ASP.NET aplikacji w usługach IIS, zobacz Zdalne debugowanie ASP.NET na komputerze usług IIS lub Zdalne debugowanie ASP.NET Core na zdalnym komputerze usług IIS.

Wbudowane serwery Kestrel i IIS Express są dołączone do programu Visual Studio. Kestrel jest domyślnym serwerem debugowania dla projektów ASP.NET Core i jest wstępnie skonfigurowany. IIS Express to domyślny serwer debugowania dla ASP.NET.

Wbudowany serwer IIS Express jest dołączony do programu Visual Studio. IIS Express to domyślny serwer debugowania dla projektów ASP.NET i ASP.NET Core i jest wstępnie skonfigurowany. Jest to najprostszy sposób debugowania i idealny do początkowego debugowania i testowania.

W przypadku ASP.NET Core można również debugować na serwerze internetowym Kestrel.

Wymagania wstępne dotyczące lokalnego serwera usług IIS

Można również debugować aplikację ASP.NET lub ASP.NET Core na lokalnym serwerze USŁUG IIS (wersja 8.0 lub nowsza), która jest skonfigurowana do uruchamiania aplikacji. Aby debugować w lokalnych usługach IIS, należy spełnić następujące wymagania:

  • Jeśli nie jest zainstalowany, zainstaluj obciążenie ASP.NET i programowanie aplikacji internetowych. (Uruchom ponownie Instalator programu Visual Studio, wybierz pozycję Modyfikuj i dodaj to obciążenie).

  • Uruchom program Visual Studio jako administrator.

  • Zainstaluj i poprawnie skonfiguruj usługi IIS z odpowiednimi wersjami ASP.NET i/lub ASP.NET Core. Aby uzyskać więcej informacji na temat używania usług IIS z programem ASP.NET Core, zobacz Host ASP.NET Core w systemie Windows z usługami IIS. Aby uzyskać ASP.NET, zobacz Instalowanie usług IIS i modułów ASP.NET.

  • Upewnij się, że aplikacja działa w usługach IIS bez błędów.

Debugowanie aplikacji ASP.NET Core

Domyślny profil oparty na protokole HTTPS lub jeden na podstawie nazwy projektu może być obecny, które są skonfigurowane dla serwera internetowego Kestrel. Jeśli zamiast tego debugujesz w lokalnych usługach IIS, upewnij się, że spełnisz wymagania wstępne dotyczące lokalnego debugowania usług IIS.

  1. Wybierz projekt ASP.NET Core w programie Visual Studio Eksplorator rozwiązań i kliknij ikonę Właściwości lub naciśnij klawisz Alt+Enter lub kliknij prawym przyciskiem myszy i wybierz polecenie Właściwości.

  2. Wybierz kartę Debugowanie i kliknij link, aby otworzyć interfejs użytkownika Otwórz profile uruchamiania debugowania.

    Przedstawiony interfejs użytkownika odpowiada ustawieniam w pliku projektu launchSettings.json . Aby uzyskać więcej informacji na temat tego pliku, zobacz sekcję Programowanie i launchSettings.json używanie wielu środowisk w programie ASP.NET Core.

  3. Wybierz profil do skonfigurowania na potrzeby debugowania.

    • W polu Kestrel wybierz profil https lub profil nazwany po projekcie.
    • W przypadku usług IIS Express wybierz pozycję IIS Express z listy rozwijanej.
    • W przypadku lokalnych usług IIS wybierz pozycję Nowy i utwórz nowy profil usług IIS.
  4. Upewnij się, że wybrano pozycję Uruchom przeglądarkę .

  5. Upewnij się, że adres URL, adres URL aplikacji i adres URL protokołu SSL aplikacji są poprawne.

    Adres URL określa lokalizację adresu URL hosta dla platformy .NET lub .NET Core. W przypadku profilu o nazwie po projekcie (czyli właściwości commandName w launchSettings.json programie Project) serwer Kestrel nasłuchuje określonego portu. W przypadku profilu usług IIS jest to zazwyczaj ta sama wartość co adres URL aplikacji. Aby uzyskać więcej informacji, zobacz sekcję Profil uruchamiania usług IIS w sekcji Konfigurowanie projektu.

    Adres URL aplikacji i adres URL protokołu SSL aplikacji określają adresy URL aplikacji. W przypadku profilu o nazwie po projekcie ta właściwość określa adresy URL serwera Kestrel, zazwyczaj https://localhost:5001 i http://localhost:5000. W przypadku usług IIS Express adres URL protokołu SSL aplikacji to zazwyczaj http://localhost:44334.

  6. W obszarze Zmienne środowiskowe upewnij się, że ASPNETCORE_ENVIRONMENT jest obecna z wartością Programowanie. Jeśli nie, dodaj zmienną.

    ustawienia debugera ASP.NET Core

    Aby uzyskać więcej informacji na temat zmiennych środowiskowych, zobacz Środowiska.

  7. Aby debugować aplikację, w projekcie ustaw punkty przerwania dla kodu. Na pasku narzędzi programu Visual Studio upewnij się, że konfiguracja jest ustawiona na Debugowanie.

  8. Aby rozpocząć debugowanie, wybierz nazwę profilu na pasku narzędzi, taką jak https, IIS Express lub< nazwa> profilu usług IIS na pasku narzędzi, wybierz pozycję Rozpocznij debugowanie z menu Debugowanie lub naciśnij klawisz F5. Debuger wstrzymuje się w punktach przerwania. Jeśli debuger nie może trafić do punktów przerwania, zobacz Rozwiązywanie problemów z debugowaniem.

Debugowanie aplikacji ASP.NET Core

Usługa IIS Express jest domyślna i jest wstępnie skonfigurowana. Jeśli debugujesz w lokalnych usługach IIS, upewnij się, że spełniasz wymagania lokalnego debugowania usług IIS.

  1. Wybierz projekt ASP.NET Core w programie Visual Studio Eksplorator rozwiązań i kliknij ikonę Właściwości lub naciśnij klawisz Alt+Enter lub kliknij prawym przyciskiem myszy i wybierz polecenie Właściwości.

  2. Wybierz kartę Debugowanie.

  3. W okienku Właściwości obok pozycji Profil,

    • W przypadku usług IIS Express wybierz pozycję IIS Express z listy rozwijanej.
    • W przypadku lokalnych usług IIS wybierz nazwę aplikacji z listy rozwijanej lub wybierz pozycję Nowy, utwórz nową nazwę profilu i wybierz przycisk OK.
  4. Obok pozycji Uruchom wybierz pozycję IIS Express lub IIS z listy rozwijanej.

  5. Upewnij się, że wybrano pozycję Uruchom przeglądarkę .

  6. W obszarze Zmienne środowiskowe upewnij się, że ASPNETCORE_ENVIRONMENT jest obecna z wartością Programowanie. Jeśli nie, wybierz pozycję Dodaj i dodaj go.

    ustawienia debugera ASP.NET Core

  7. Zapisz wybrane elementy za pomocą pliku>lub Ctrl+S, aby zapisać wszelkie zmiany.

  8. Aby debugować aplikację, w projekcie ustaw punkty przerwania dla kodu. Na pasku narzędzi programu Visual Studio upewnij się, że konfiguracja jest ustawiona na Debugowanie, a w polu emulatora jest wyświetlana nowa nazwa profilu usług IIS lub IIS.

  9. Aby rozpocząć debugowanie, wybierz nazwę >profilu usług IIS Express lub <IIS na pasku narzędzi, wybierz pozycję Rozpocznij debugowanie z menu Debugowanie lub naciśnij klawisz F5. Debuger wstrzymuje się w punktach przerwania. Jeśli debuger nie może trafić do punktów przerwania, zobacz Rozwiązywanie problemów z debugowaniem.

Debugowanie aplikacji ASP.NET

Usługa IIS Express jest domyślna i jest wstępnie skonfigurowana. Jeśli debugujesz w lokalnych usługach IIS, upewnij się, że spełniasz wymagania lokalnego debugowania usług IIS.

  1. Wybierz projekt ASP.NET w programie Visual Studio Eksplorator rozwiązań i kliknij ikonę Właściwości lub naciśnij klawisz Alt+Enter lub kliknij prawym przyciskiem myszy i wybierz polecenie Właściwości.

  2. Wybierz kartę Sieć Web .

    Jeśli nie widzisz karty Sieci Web , zobacz Debugowanie aplikacji ASP.NET Core. Karta Sieć Web jest wyświetlana tylko dla platformy ASP.NET Framework.

  3. W okienku Właściwości w obszarze Serwery,

    • W polu Kestrel wybierz pozycję https z listy rozwijanej.
    • W przypadku usług IIS Express wybierz pozycję IIS Express z listy rozwijanej.
    • W przypadku lokalnych usług IIS,
      1. Z listy rozwijanej wybierz pozycję Lokalne usługi IIS .
      2. Obok pola Project URL (Adres URL projektu) wybierz pozycję Create Virtual Directory (Utwórz katalog wirtualny), jeśli aplikacja nie jest jeszcze skonfigurowana w usługach IIS.
  4. W obszarze Debugery wybierz pozycję ASP.NET.

    Zrzut ekranu przedstawiający ustawienia debugera ASP.NET.

  5. Wybierz pozycję Plik>Zapisz zaznaczone elementy (lub naciśnij klawisze Ctrl+S), aby zapisać zmiany.

  6. Aby debugować aplikację, w projekcie ustaw punkty przerwania dla kodu. Na pasku narzędzi programu Visual Studio upewnij się, że konfiguracja jest ustawiona na Debuguj, a w polu emulatora zostanie wyświetlona odpowiednia przeglądarka w usługach IIS Express (<nazwa> przeglądarki) lub Lokalne usługi IIS (<nazwa> przeglądarki).

  7. Aby rozpocząć debugowanie, wybierz pozycję IIS Express (nazwa> przeglądarki) lub Lokalne usługi IIS (<<nazwa> przeglądarki) na pasku narzędzi, wybierz pozycję Rozpocznij debugowanie z menu Debugowanie lub naciśnij klawisz F5. Debuger wstrzymuje się w punktach przerwania. Jeśli debuger nie może trafić do punktów przerwania, zobacz Rozwiązywanie problemów z debugowaniem.

Rozwiązywanie problemów z debugowaniem

Jeśli lokalne debugowanie usług IIS nie może przejść do punktu przerwania, wykonaj następujące kroki, aby rozwiązać problemy.

  1. Uruchom aplikację internetową z usług IIS i upewnij się, że działa poprawnie. Pozostaw uruchomioną aplikację internetową.

  2. W programie Visual Studio wybierz pozycję Debuguj dołączanie > do procesu lub naciśnij klawisze Ctrl+Alt+P i nawiąż połączenie z procesem ASP.NET lub ASP.NET Core (zazwyczaj w3wp.exe lub dotnet.exe). Aby uzyskać więcej informacji, zobacz Attach to Process (Dołączanie do procesu) i How to find the name of the ASP.NET process (Dołączanie do procesu ) i How to find the name of the ASP.NET process (Jak znaleźć nazwę procesu ASP.NET).

Jeśli możesz nawiązać połączenie i przejść do punktu przerwania przy użyciu polecenia Dołącz do procesu, ale nie przy użyciu debugowania>rozpocznij debugowanie lub klawisz F5, ustawienie prawdopodobnie jest niepoprawne we właściwościach projektu. Jeśli używasz pliku HOSTS, upewnij się, że jest on również poprawnie skonfigurowany.

Konfigurowanie debugowania w pliku web.config

ASP.NET projekty domyślnie zawierają web.config pliki zawierające zarówno konfigurację aplikacji, jak i informacje o uruchamianiu, w tym ustawienia debugowania. Pliki web.config muszą być poprawnie skonfigurowane do debugowania. Ustawienia właściwości w poprzednich sekcjach aktualizują web.config pliki, ale można je również skonfigurować ręcznie.

Uwaga

projekty ASP.NET Core nie mają web.config początkowo plików, ale używają appsettings.json plików i launchSettings.json do konfigurowania aplikacji i uruchamiania informacji. Wdrożenie aplikacji tworzy web.config plik lub pliki w projekcie, ale zazwyczaj nie zawierają informacji debugowania.

Napiwek

Proces wdrażania może zaktualizować web.config ustawienia, więc przed podjęciem próby debugowania upewnij się, że web.config element jest skonfigurowany do debugowania.

Aby ręcznie skonfigurować web.config plik na potrzeby debugowania:

  1. W programie Visual Studio otwórz plik projektu web.config ASP.NET.

  2. Web.config jest plikiem XML, więc zawiera zagnieżdżone sekcje oznaczone tagami. Znajdź sekcję configuration/system.web/compilation . (Jeśli compilation element nie istnieje, utwórz go).

  3. Upewnij się, że debug atrybut w elemecie compilation jest ustawiony na truewartość . (Jeśli compilation element nie zawiera atrybutu debug , dodaj go i ustaw go na true.)

    Jeśli używasz lokalnych usług IIS zamiast domyślnego serwera IIS Express, upewnij się, że targetFramework wartość atrybutu w compilation elemecie jest zgodna ze strukturą na serwerze usług IIS.

    Element compilation pliku powinien wyglądać podobnie do następującego przykładu web.config :

    Uwaga

    Ten przykład jest plikiem częściowym web.config . Zazwyczaj w elementach configuration i system.web znajdują się dodatkowe sekcje XML, a compilation element może również zawierać inne atrybuty i elementy.

    <configuration>
       ...
       <system.web>
           <compilation  debug="true"  targetFramework="4.6.1" ... >
              ...
           </compilation>
       </system.web>
    </configuration>
    

ASP.NET automatycznie wykrywa wszelkie zmiany w web.config plikach i stosuje nowe ustawienia konfiguracji. Nie musisz ponownie uruchamiać komputera ani serwera usług IIS, aby zmiany zaczęły obowiązywać.

Witryna internetowa może zawierać kilka katalogów wirtualnych i podkatalogów z plikami web.config w każdym z nich. ASP.NET aplikacje dziedziczą ustawienia konfiguracji z web.config plików na wyższych poziomach w ścieżce adresu URL. Ustawienia pliku hierarchicznego web.config mają zastosowanie do wszystkich aplikacji ASP.NET poniżej nich w hierarchii. Ustawienie innej konfiguracji w pliku niższym w web.config hierarchii zastępuje ustawienia w wyższym pliku.

Jeśli na przykład określisz debug="true" w www.microsoft.com/aaa/web.config, dowolna aplikacja w aaa folderze lub w dowolnym podfolderze aaa dziedziczy to ustawienie, z wyjątkiem sytuacji, gdy jedna z tych aplikacji zastąpi ustawienie własnym web.config plikiem.

Ważne

Tryb debugowania znacznie zmniejsza wydajność aplikacji. Podczas wdrażania aplikacji produkcyjnej lub przeprowadzania pomiarów wydajności ustaw debug="false" w elemecie web.config i określ kompilację wydania.