Freigeben über


Debuggen von ASP.NET oder ASP.NET Core-Apps in Visual Studio

Sie können ASP.NET und ASP.NET Core-Apps in Visual Studio debuggen. Der Prozess unterscheidet sich zwischen ASP.NET und ASP.NET Core und ob Sie ihn auf IIS Express oder einem lokalen IIS-Server ausführen.

Anmerkung

Die folgenden Schritte und Einstellungen gelten nur für das Debuggen von Apps auf einem lokalen Server. Beim Debuggen von Apps auf einem IIS-Remoteserver wird An Prozess anhängen verwendet, und diese Einstellungen werden ignoriert. Weitere Informationen und Anweisungen zum Remotedebugging ASP.NET Apps in IIS finden Sie unter Remotedebugging-ASP.NET auf einem IIS-Computer oder Remotedebugging ASP.NET Core auf einem IIS-Remotecomputer.

Die integrierten Kestrel- und IIS Express-Server sind in Visual Studio enthalten. Kestrel ist der Standarddebugserver für ASP.NET Core-Projekte und ist vorkonfiguriert. IIS Express ist der Standarddebugserver für ASP.NET.

Der integrierte IIS Express-Server ist in Visual Studio enthalten. IIS Express ist der Standarddebugserver für ASP.NET- und ASP.NET Core-Projekte und ist vorkonfiguriert. Dies ist die einfachste Möglichkeit zum Debuggen und ideal für das anfängliche Debuggen und Testen.

Für ASP.NET Core können Sie auch auf dem Kestrel-Webserver debuggen.

Voraussetzungen für lokalen IIS-Server

Sie können auch eine ASP.NET oder ASP.NET Core-App auf einem lokalen IIS-Server (Version 8.0 oder höher) debuggen, der für die Ausführung der App konfiguriert ist. Zum Debuggen auf lokalem IIS müssen Sie die folgenden Anforderungen erfüllen:

  • Wenn es nicht installiert ist, installieren Sie das ASP.NET- und Webentwicklungsworkload. (Führen Sie das Visual Studio-Installationsprogramm erneut aus, wählen Sie Modifizieren, und fügen Sie diese Workload hinzu.)

  • Führen Sie Visual Studio als Administrator aus.

  • Installieren und ordnungsgemäß konfigurieren Sie IIS mit den entsprechenden Versionen von ASP.NET und/oder ASP.NET Core. Weitere Informationen zur Verwendung von IIS mit ASP.NET Core finden Sie unter Host ASP.NET Core unter Windows mit IIS. Informationen zu ASP.NET finden Sie unter Installieren von IIS und ASP.NET Module.

  • Stellen Sie sicher, dass die App ohne Fehler auf IIS ausgeführt wird.

Debuggen von ASP.NET Core-Apps

Ein Standardprofil mit dem Namen https oder eines, das auf dem Projektnamen basiert, kann vorhanden sein, das für den Kestrel-Webserver konfiguriert ist. Wenn Sie stattdessen mit lokalem IIS debuggen, stellen Sie sicher, dass Sie die Voraussetzungen für das lokale IIS-Debuggingerfüllen.

  1. Wählen Sie in Visual Studio im Projektmappen-Explorer das ASP.NET Core-Projekt aus, klicken Sie dann auf das Symbol für Eigenschaften, oder drücken Sie ALT+EINGABETASTE. Alternativ können Sie mit der rechten Maustaste auf das Projekt und anschließend mit der linken Maustaste auf Eigenschaften klicken.

  2. Wählen Sie die Registerkarte Debuggen aus, und klicken Sie auf den Link, um die Benutzeroberfläche zum Öffnen von Debugstartprofilenzu öffnen.

    Die angezeigte Benutzeroberfläche entspricht den Einstellungen in der launchSettings.json Datei des Projekts. Weitere Informationen zu dieser Datei finden Sie im Abschnitt "Entwicklung und launchSettings.json" in Verwenden mehrerer Umgebungen in ASP.NET Core.

  3. Wählen Sie das Profil aus, das für das Debuggen konfiguriert werden soll.

    • Wählen Sie für Kestrel das https Profil oder das nach dem Projekt benannte Profil aus.
    • Wählen Sie für IIS Express IIS Express aus der Dropdownliste aus.
    • Wählen Sie für lokale IIS Neuen aus, und erstellen Sie ein neues IIS-Profil.
  4. Stellen Sie sicher, dass Browser starten ausgewählt ist.

  5. Stellen Sie sicher, dass URL-, App-URLund APP-SSL- URL korrekt sind.

    URL gibt den Speicherort der Host-URL für .NET Core oder .NET 5+ an. Für ein Profil, das nach dem Projekt benannt ist (d. h. die commandName-Eigenschaft in launchSettings.json ist Project), lauscht der Kestrel-Server auf den angegebenen Port. Bei einem IIS-Profil ist dies in der Regel derselbe Wert wie die App-URL. Weitere Informationen finden Sie im Abschnitt "IIS-Startprofil" unter Konfigurieren des Projekts.

    App-URL und App-SSL-URL geben die Anwendungs-URL(s) an.

    • Bei einem https-Profil ist die App-URL-Eigenschaft in der Regel https://localhost:7241;http://localhost:5175.
    • Für ein nach dem Projekt benanntes Profil sind diese Eigenschaften typischerweise http://localhost:5000 und https://localhost:5001.
    • Für IIS Express ist die APP-SSL-URL in der Regel https://localhost:44334.
  6. Stellen Sie unter Umgebungsvariablen sicher, dass ASPNETCORE_ENVIRONMENT mit dem Wert Development vorhanden ist. Wenn nicht, fügen Sie die Variable hinzu.

    ASP.NET Core Debugger-Einstellungen

    Weitere Informationen zu Umgebungsvariablen finden Sie unter Umgebungen.

  7. Um die App zu debuggen, legen Sie in Ihrem Projekt Haltepunkte für einen Code fest.To debug the app, in your project, set breakpoints on some code. Stellen Sie in der Visual Studio-Symbolleiste sicher, dass die Konfiguration auf Debug-festgelegt ist.

  8. Um das Debugging zu starten, wählen Sie den Profilnamen in der Symbolleiste aus, z. B. https, IIS Express oder <IIS-Profilname> in der Symbolleiste, wählen Sie Debugging starten aus dem Menü Debuggen aus, oder drücken Sie F5. Der Debugger hält an den Haltepunkten an. Wenn der Debugger die Haltepunkte nicht erreichen kann, finden Sie weitere Informationen im Abschnitt Behandeln von Problemen beim Debuggen.

Debuggen von ASP.NET Core-Apps

IIS Express ist die Standardeinstellung und ist vorkonfiguriert. Wenn Sie das Debuggen auf lokalem IIS durchführen, stellen Sie sicher, dass Sie die Anforderungen für das lokale IIS-Debuggingerfüllen.

  1. Wählen Sie in Visual Studio im Projektmappen-Explorer das ASP.NET Core-Projekt aus, klicken Sie dann auf das Symbol für Eigenschaften, oder drücken Sie ALT+EINGABETASTE. Alternativ können Sie mit der rechten Maustaste auf das Projekt und anschließend mit der linken Maustaste auf Eigenschaften klicken.

  2. Wählen Sie die Registerkarte Debug aus.

  3. Gehen Sie im Bereich Eigenschaften neben Profil wie folgt vor:

    • Wählen Sie für IIS Express IIS Express aus der Dropdownliste aus.
    • Wählen Sie für lokale IIS den App-Namen aus der Dropdownliste aus, oder wählen Sie Neueaus, erstellen Sie einen neuen Profilnamen, und wählen Sie OKaus.
  4. Wählen Sie neben Start-entweder IIS Express- oder IIS- aus der Dropdownliste aus.

  5. Stellen Sie sicher, dass Browser starten ausgewählt ist.

  6. Stellen Sie unter Umgebungsvariablen sicher, dass ASPNETCORE_ENVIRONMENT mit dem Wert Development vorhanden ist. Wenn das nicht der Fall ist, wählen Sie Hinzufügen aus, und fügen Sie sie hinzu.

    ASP.NET Core Debugger-Einstellungen

  7. Verwenden Sie Datei>Ausgewählte Elemente speichern oder STRG+S, um jegliche Änderungen zu speichern.

  8. Um die App zu debuggen, legen Sie in Ihrem Projekt Haltepunkte für einen Code fest.To debug the app, in your project, set breakpoints on some code. Stellen Sie in der Visual Studio-Symbolleiste sicher, dass die Konfiguration auf Debug-festgelegt ist und entweder IIS Express-oder der neue IIS-Profilname im Emulatorfeld angezeigt wird.

  9. Um mit dem Debuggen zu beginnen, wählen Sie IIS Express oder <IIS-Profilnamen> in der Symbolleiste aus, wählen Sie Debuggen starten im Menü Debug aus, oder drücken Sie F5. Der Debugger hält an den Haltepunkten an. Wenn der Debugger die Haltepunkte nicht erreichen kann, finden Sie weitere Informationen im Abschnitt Behandeln von Problemen beim Debuggen.

Debuggen von ASP.NET-Apps

IIS Express ist die Standardeinstellung und ist vorkonfiguriert. Wenn Sie das Debuggen auf lokalem IIS durchführen, stellen Sie sicher, dass Sie die Anforderungen für das lokale IIS-Debuggingerfüllen.

  1. Wählen Sie das ASP.NET-Projekt im Visual Studio Projektmappen-Explorer aus, und klicken Sie auf das Eigenschaften-Symbol, oder drücken Sie Alt+Eingabetaste, oder klicken Sie mit der rechten Maustaste, und wählen Sie Eigenschaften.

  2. Wählen Sie die Registerkarte Web aus.

    Wenn Sie die Registerkarte Web nicht sehen, lesen Sie den Abschnitt ASP.NET Core-Apps debuggen. Die Registerkarte "Web" wird nur für ASP.NET Framework angezeigt.

  3. Gehen Sie im Bereich Eigenschaften unter Server wie folgt vor:

    • Wählen Sie für Kestrel https aus der Dropdownliste aus.
    • Wählen Sie für IIS Express IIS Express aus der Dropdownliste aus.
    • Für lokale IIS:
      1. Wählen Sie Local IIS aus dem Dropdown aus.
      2. Wählen Sie neben dem Feld Projekt-URLVirtuelles Verzeichnis erstellenaus, wenn Sie die App in IIS noch nicht eingerichtet haben.
  4. Unter Debuggerswählen Sie ASP.NETaus.

    Screenshot mit ASP.NET Debuggereinstellungen.

  5. Wählen Sie Datei>Ausgewählte Elemente speichern (oder drücken Sie STRG+S), um alle Änderungen zu speichern.

  6. Um die App zu debuggen, legen Sie in Ihrem Projekt Haltepunkte für einen Code fest.To debug the app, in your project, set breakpoints on some code. Stellen Sie in der Visual Studio-Symbolleiste sicher, dass die Konfiguration auf Debug-festgelegt ist und der gewünschte Browser in IIS Express (<Browsername>) oder lokalen IIS (<Browsername>) im Emulatorfeld angezeigt wird.

  7. Um mit dem Debuggen zu beginnen, wählen Sie IIS Express (<Browsername>) oder lokalen IIS (<Browsername> ) in der Symbolleiste aus, wählen Sie Debuggen starten im Menü Debuggen aus, oder drücken Sie F5. Der Debugger hält an den Haltepunkten an. Wenn der Debugger die Haltepunkte nicht erreichen kann, finden Sie weitere Informationen im Abschnitt Behandeln von Problemen beim Debuggen.

Behandeln von Problemen beim Debuggen

Wenn das lokale IIS-Debugging nicht zum Haltepunkt gelangen kann, führen Sie die folgenden Schritte aus, um Probleme zu beheben.

  1. Starten Sie die Web-App über IIS, und stellen Sie sicher, dass sie ordnungsgemäß ausgeführt wird. Lassen Sie die Web-App laufen.

  2. Wählen Sie in Visual Studio Debuggen > An Prozess anhängen aus, oder drücken Sie STRG+ALT+P, und stellen Sie eine Verbindung mit dem ASP.NET- oder ASP.NET Core-Prozess her (in der Regel w3wp.exe oder dotnet.exe). Weitere Informationen finden Sie unter An den Prozess anfügen und So finden Sie den Namen des ASP.NET Prozesses.

Wenn Sie mit An Prozess anfügen eine Verbindung herstellen und den Haltepunkt erreichen können, aber nicht über Debuggen>Debuggen starten oder F5, ist vermutlich eine Einstellung in den Projekteigenschaften falsch konfiguriert. Wenn Sie eine HOSTS-Datei verwenden, stellen Sie sicher, dass sie auch richtig konfiguriert ist.

Konfigurieren des Debuggens in der web.config-Datei

ASP.NET Projekte verfügen standardmäßig über web.config Dateien, die sowohl App-Konfigurations- als auch Startinformationen enthalten, einschließlich Debugeinstellungen. Die web.config Dateien müssen für das Debuggen ordnungsgemäß konfiguriert werden. Die Eigenschaften Einstellungen in vorherigen Abschnitten aktualisieren die web.config Dateien, aber Sie können sie auch manuell konfigurieren.

Anmerkung

ASP.NET Core-Projekte verfügen anfangs nicht über web.config Dateien, verwenden aber appsettings.json und launchSettings.json Dateien für die App-Konfiguration und startinformationen. Durch die Bereitstellung der App wird eine web.config Datei oder Dateien im Projekt erstellt, sie enthalten jedoch in der Regel keine Debuginformationen.

Tipp

Ihr Bereitstellungsprozess aktualisiert möglicherweise die web.config Einstellungen. Stellen Sie daher vor dem Debuggen sicher, dass die web.config für das Debuggen konfiguriert ist.

So konfigurieren Sie eine web.config Datei manuell zum Debuggen:

  1. Öffnen Sie in Visual Studio die web.config-Datei des ASP.NET Projekts.

  2. Web.config ist eine XML-Datei, enthält also geschachtelte Abschnitte, die durch Tags gekennzeichnet sind. Machen Sie den Abschnitt configuration/system.web/compilation ausfindig. (Wenn das compilation-Element nicht vorhanden ist, erstellen Sie es.)

  3. Stellen Sie sicher, dass das attribut debug im compilation-Element auf truefestgelegt ist. (Wenn das compilation-Element kein debug-Attribut enthält, fügen Sie es hinzu, und legen Sie es auf truefest.)

    Wenn Sie lokale IIS anstelle des Standardmäßigen IIS Express-Servers verwenden, stellen Sie sicher, dass der targetFramework Attributwert im compilation-Element dem Framework auf dem IIS-Server entspricht.

    Das compilation-Element der datei web.config sollte wie im folgenden Beispiel aussehen:

    Anmerkung

    Dieses Beispiel ist eine partielle web.config Datei. In der Regel gibt es zusätzliche XML-Abschnitte in den configuration- und system.web-Elementen, und das compilation Element kann auch andere Attribute und Elemente enthalten.

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

ASP.NET erkennt automatisch Änderungen an web.config Dateien und wendet die neuen Konfigurationseinstellungen an. Sie müssen den Computer oder den IIS-Server nicht neu starten, damit Änderungen wirksam werden.

Eine Website kann mehrere virtuelle Verzeichnisse und Unterverzeichnisse mit web.config Dateien in jedem enthalten. ASP.NET Apps erben Konfigurationseinstellungen von web.config Dateien auf höheren Ebenen im URL-Pfad. Die hierarchischen web.config Dateieinstellungen gelten für alle ASP.NET Apps darunter in der Hierarchie. Wenn Sie eine andere Konfiguration in einer web.config Datei unter der Hierarchie festlegen, werden die Einstellungen in der höheren Datei außer Kraft gesetzt.

Wenn Sie z. B. debug="true" in www.microsoft.com/aaa/web.configangeben, erbt jede App im ordner aaa oder in einem Unterordner von aaa diese Einstellung, es sei denn, eine dieser Apps überschreibt die Einstellung mit einer eigenen web.config Datei.

Wichtig

Der Debugmodus reduziert die Leistung Ihrer App erheblich. Wenn Sie eine Produktions-App bereitstellen oder Leistungsmessungen durchführen, legen Sie debug="false" im web.config fest, und geben Sie einen Release-Build an.