Udostępnij za pośrednictwem


Debugowanie aplikacji 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.

Notatka

Poniższe kroki i ustawienia dotyczą tylko debugowania aplikacji na serwerze lokalnym. Debugowanie aplikacji na zdalnym serwerze IIS używa Podłączanie do procesui ignoruje te ustawienia. Aby uzyskać więcej informacji i instrukcje dotyczące zdalnego debugowania ASP.NET i ASP.NET Core, zobacz Remote debug ASP.NET Core na zdalnym komputerze IISi zdalnego debugowania usługi Azure App Service.

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 pakiet roboczy ASP.NET i tworzenie aplikacji internetowych. (Uruchom ponownie Instalatora programu Visual Studio, wybierz pozycję Modyfikuji dodaj to obciążenie).

  • Uruchom program Visual Studio jako administrator.

  • Zainstaluj i prawidłowo skonfiguruj usługi IIS z odpowiednimi wersjami ASP.NET i/lub ASP.NET Core. Aby uzyskać więcej informacji na temat używania IIS z ASP.NET Core, zobacz Hostowanie ASP.NET Core w systemie Windows z IIS. Aby uzyskać informacje o ASP.NET, zobacz Instalacja usług IIS i modułów ASP.NET.

  • Upewnij się, że aplikacja działa w usługach IIS i zostanie otwarta w przeglądarce.

Debugowanie aplikacji ASP.NET Core

Domyślny profil o nazwie https lub jeden na podstawie nazwy projektu może być obecny, który jest skonfigurowany dla serwera internetowego Kestrel. Jeśli zamiast tego debugujesz w lokalnym IIS, upewnij się, że spełniasz wymagania wstępne dotyczące lokalnego debugowania usług IIS.

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

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

    Przedstawiony interfejs użytkownika odpowiada ustawieniam w pliku launchSettings.json projektu. Aby uzyskać więcej informacji na temat tego pliku, zobacz sekcję Rozwój i launchSettings.json w Użytkowanie wielu środowisk w usłudze ASP.NET Core.

  3. Wybierz profil do skonfigurowania na potrzeby debugowania.

    • Dla Kestrel wybierz profil https lub profil nazwany według projektu.
    • W przypadku usług IIS Express wybierz z listy rozwijanej pozycję IIS Express.
    • W przypadku lokalnego serwera IIS wybierz pozycję Nowy i utwórz profil IIS.
  4. Upewnij się, że wybrano 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 Core lub .NET 5+. W przypadku profilu o nazwie po projekcie (czyli właściwości commandName w launchSettings.json jest 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 pod Konfigurowanie projektu.

    adres URL aplikacji i adres URL SSL aplikacji określają adresy URL aplikacji.

    • W przypadku profilu https właściwość adresu URL aplikacji jest zwykle https://localhost:7241;http://localhost:5175.
    • W przypadku profilu nazwanego po projekcie te właściwości są zazwyczaj http://localhost:5000 i https://localhost:5001.
    • W przypadku IIS Express adres URL SSL aplikacji jest zwykle https://localhost:44334.
  6. W obszarze Zmienne środowiskoweupewnij się, że ASPNETCORE_ENVIRONMENT jest obecny z wartością środowisko deweloperskie. Jeśli nie, dodaj zmienną.

    ustawienia debugera ASP.NET Core

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

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

  8. Aby rozpocząć debugowanie, wybierz nazwę profilu na pasku narzędzi, taką jak https, iis Expresslub <nazwa profilu usług IIS> na pasku narzędzi, wybierz pozycję Rozpocznij debugowanie z menu debugowania Debugowanie lub naciśnij 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 lokalnym IIS, upewnij się, że spełniasz wymagania dotyczące lokalnego debugowania IIS.

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

  2. Wybierz kartę Debug.

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

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

  5. Upewnij się, że wybrana jest opcja Uruchom przeglądarkę.

  6. W obszarze Zmienne środowiskoweupewnij się, że ASPNETCORE_ENVIRONMENT jest obecne z wartością Development. W przeciwnym razie wybierz pozycję Dodaj i dodaj ją.

    ustawienia debugera ASP.NET Core

  7. Użyj Plik>Zapisz zaznaczone elementy lub Ctrl+S, aby zapisać 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 Debug, a w polu emulatora jest widoczny IIS Expresslub nowa nazwa profilu IIS.

  9. Aby rozpocząć debugowanie, wybierz pozycję IIS Express lub <nazwę profilu usług IIS> na pasku narzędzi, wybierz pozycję Rozpocznij debugowanie z menu debugowania lub naciśnij 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 na lokalnym IIS, upewnij się, że spełniasz wymagania dotyczące lokalnego debugowania IIS.

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

  2. Wybierz kartę Web.

    Jeśli nie widzisz karty Web, przejdź do sekcji Debugowanie aplikacji ASP.NET Core. Karta sieci Web jest wyświetlana tylko dla ASP.NET Framework.

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

    • W polu Kestrel wybierz z listy rozwijanej pozycję https.
    • W przypadku usług IIS Express wybierz z listy rozwijanej pozycję IIS Express.
    • Dla lokalnego IIS
      1. Wybierz lokalny IIS z listy rozwijanej.
      2. Obok pola adresu URL projektu wybierz pozycję Utwórz katalog wirtualny, jeśli jeszcze nie skonfigurowałeś aplikacji w IIS.
  4. W obszarze Debugerywybierz ASP.NET.

    Zrzut ekranu przedstawiający ustawienia debugera ASP.NET.

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

  6. Aby debugować aplikację, w swoim projekcie ustaw punkty przerwania w kodzie. Na pasku narzędzi programu Visual Studio upewnij się, że konfiguracja jest ustawiona na Debug, a przeglądarka, którą chcesz użyć, pojawi się w IIS Express (<nazwa przeglądarki>) lub Lokalny IIS (<nazwa przeglądarki>) w polu emulatora.

  7. Aby rozpocząć debugowanie, wybierz pozycję IIS Express (<nazwa przeglądarki>) lub Lokalne IIS (<nazwa przeglądarki>) na pasku narzędzi, wybierz pozycję Rozpocznij debugowanie z menu Debug, lub naciśnij 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 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ę Debug > Dołącz do procesu lub naciśnij Ctrl+Alt+P, a następnie połącz się z procesem ASP.NET lub ASP.NET Core (zazwyczaj w3wp.exe lub dotnet.exe). Aby uzyskać więcej informacji, zobacz Dołącz do procesu oraz Jak znaleźć nazwę procesu ASP.NET.

Jeśli możesz nawiązać połączenie i przejść do punktu przerwania przy użyciu Dołączanie do procesu, ale nie przy użyciu Debugowanie>Rozpocznij debugowanie lub F5, ustawienie jest prawdopodobnie 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 mają domyślnie pliki web.config 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ą pliki web.config, ale można je również skonfigurować ręcznie.

Notatka

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

Napiwek

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

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

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

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

  3. Upewnij się, że atrybut debug w elemrybucie compilation jest ustawiony na wartość true. (Jeśli element compilation 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 wartość atrybutu targetFramework w elemecie compilation jest zgodna ze strukturą na serwerze usług IIS.

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

    Notatka

    Ten przykład to częściowy plik typu web.config. Zazwyczaj istnieją dodatkowe sekcje XML w elementach configuration i system.web, a element compilation 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 plikach web.config 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, przy czym każdy z nich może zawierać web.config plików. Aplikacje ASP.NET dziedziczą ustawienia konfiguracji z plików web.config na wyższych poziomach w ścieżce URL. Hierarchiczne ustawienia plików web.config mają zastosowanie do wszystkich aplikacji ASP.NET pod nimi w hierarchii. Ustawienie innej konfiguracji w pliku web.config niższym w 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 folderze aaa lub w dowolnym podfolderze aaa dziedziczy to ustawienie, z wyjątkiem sytuacji, gdy jedna z tych aplikacji zastąpi ustawienie własnym plikiem web.config.

Ważny

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