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.
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.
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 ilaunchSettings.json
używanie wielu środowisk w programie ASP.NET Core.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.
Upewnij się, że wybrano pozycję Uruchom przeglądarkę .
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
ihttp://localhost:5000
. W przypadku usług IIS Express adres URL protokołu SSL aplikacji to zazwyczajhttp://localhost:44334
.W obszarze Zmienne środowiskowe upewnij się, że ASPNETCORE_ENVIRONMENT jest obecna z wartością Programowanie. Jeśli nie, dodaj zmienną.
Aby uzyskać więcej informacji na temat zmiennych środowiskowych, zobacz Środowiska.
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.
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.
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.
Wybierz kartę Debugowanie.
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.
Obok pozycji Uruchom wybierz pozycję IIS Express lub IIS z listy rozwijanej.
Upewnij się, że wybrano pozycję Uruchom przeglądarkę .
W obszarze Zmienne środowiskowe upewnij się, że ASPNETCORE_ENVIRONMENT jest obecna z wartością Programowanie. Jeśli nie, wybierz pozycję Dodaj i dodaj go.
Zapisz wybrane elementy za pomocą pliku>lub Ctrl+S, aby zapisać wszelkie zmiany.
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.
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.
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.
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.
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,
- Z listy rozwijanej wybierz pozycję Lokalne usługi IIS .
- 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.
W obszarze Debugery wybierz pozycję ASP.NET.
Wybierz pozycję Plik>Zapisz zaznaczone elementy (lub naciśnij klawisze Ctrl+S), aby zapisać zmiany.
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).
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.
Uruchom aplikację internetową z usług IIS i upewnij się, że działa poprawnie. Pozostaw uruchomioną aplikację internetową.
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:
W programie Visual Studio otwórz plik projektu
web.config
ASP.NET.Web.config
jest plikiem XML, więc zawiera zagnieżdżone sekcje oznaczone tagami. Znajdź sekcjęconfiguration/system.web/compilation
. (Jeślicompilation
element nie istnieje, utwórz go).Upewnij się, że
debug
atrybut w elemeciecompilation
jest ustawiony natrue
wartość . (Jeślicompilation
element nie zawiera atrybutudebug
, dodaj go i ustaw go natrue
.)Jeśli używasz lokalnych usług IIS zamiast domyślnego serwera IIS Express, upewnij się, że
targetFramework
wartość atrybutu wcompilation
elemecie jest zgodna ze strukturą na serwerze usług IIS.Element
compilation
pliku powinien wyglądać podobnie do następującego przykładuweb.config
:Uwaga
Ten przykład jest plikiem częściowym
web.config
. Zazwyczaj w elementachconfiguration
isystem.web
znajdują się dodatkowe sekcje XML, acompilation
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.
Powiązana zawartość
- Debugowanie ASP.NET: wymagania systemowe
- Instrukcje: uruchamianie procesu roboczego z konta użytkownika
- Porada: znajdowanie nazwy procesu ASP.NET
- Debugowanie wdrożonych aplikacji internetowych
- Instrukcje: debugowanie wyjątków ASP.NET
- Debugowanie aplikacji internetowych: błędy i rozwiązywanie problemów