IIS-Support zum Zeitpunkt der Entwicklung in Visual Studio für ASP.NET Core

Von Sourabh Shirhatti

In diesem Artikel wird die Visual Studio-Unterstützung des Debuggens von ASP.NET Core-Apps beschrieben, die mit IIS unter Windows Server ausgeführt werden. Dieses Thema führt Sie durch die Aktivierung dieses Szenarios und Einrichtung eines Projekts.

Voraussetzungen

  • Visual Studio für Windows
  • Workload ASP.NET und Webentwicklung
  • Workload Plattformübergreifende .NET Core-Entwicklung
  • X.509-Sicherheitszertifikat (für HTTPS-Unterstützung)

Aktivieren von IIS

  1. Navigieren Sie in Windows zu Systemsteuerung>Programme>Programme und Features>Windows-Features aktivieren oder deaktivieren (links auf dem Bildschirm).
  2. Aktivieren Sie das Kontrollkästchen Internetinformationsdienste. Klicken Sie auf OK.

Für die IIS-Installation ist möglicherweise ein Neustart des Systems erforderlich.

Konfigurieren von IIS

Für IIS muss eine Website mit Folgendem konfiguriert sein:

  • Hostname: In der Regel wird die Standardwebsite mit dem Hostnamenlocalhost verwendet. Allerdings funktioniert jede gültige IIS-Website mit einem eindeutigen Hostnamen.
  • Sitebindung
    • Für Anwendungen, die HTTPS benötigen, erstellen Sie mithilfe eines Zertifikats eine Bindung an Port 443. In der Regel wird das IIS Express-Entwicklungszertifikat verwendet, doch es funktioniert auch jedes andere gültige Zertifikat.
    • Bestätigen Sie bei Apps, die HTTP verwenden, das Vorhandensein einer Bindung an Port 80, oder erstellen Sie eine Bindung an Port 80 für eine neue Site.
    • Verwenden Sie eine einzelne Bindung für entweder HTTP oder HTTPS. Die gleichzeitige Bindung sowohl an HTTP- als auch an HTTPS-Ports wird nicht unterstützt.

Aktivieren von IIS-Unterstützung in Visual Studio zur Entwicklungszeit

  1. Starten Sie den Visual Studio-Installer.

  2. Klicken Sie für die Visual Studio-Installation, die Sie für die Unterstützung von IIS-Entwicklungszeit verwenden möchten, auf Ändern.

  3. Wechseln Sie für die Workload ASP.NET- und Webentwicklung zur Komponente Entwicklungszeit-IIS-Unterstützung , und installieren Sie sie.

    Die Komponente befindet sich im Abschnitt Optional unter Entwicklungszeit-IIS-Unterstützung im Bereich Installationsdetails rechts neben den Workloads. Sie installiert das ASP.NET Core-Modul – ein natives IIS-Modul, das zur Ausführung von ASP.NET Core-Anwendungen mit IIS erforderlich ist.

Konfigurieren des Projekts

HTTPS-Umleitung

Für ein neues Projekt, das HTTPS erfordert, müssen Sie das Kontrollkästchen Für HTTPS konfigurieren im Fenster Neue ASP.NET Core-Webanwendung erstellen aktivieren. Wenn Sie das Kontrollkästchen aktivieren, werden die HTTPS-Umleitung und HSTS-Middleware bei der Erstellung zur App hinzugefügt.

Verwenden Sie für ein vorhandenes Projekt, das HTTPS erfordert, die HTTPS-Umleitung und HSTS-Middleware in Startup.Configure. Weitere Informationen finden Sie unter Erzwingen von HTTPS in ASP.NET Core.

Für ein Projekt, das HTTP verwendet, werden die HTTPS-Umleitung und HSTS-Middleware nicht der App hinzugefügt. Es ist keine App-Konfiguration erforderlich.

IIS-Startprofil

So erstellen Sie ein neues Startprofil, um IIS-Unterstützung zur Entwicklungszeit hinzuzufügen:

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt. Klicken Sie auf Eigenschaften. Öffnen Sie die Registerkarte Debuggen.

  2. Klicken Sie für Profil auf die Schaltfläche Neu. Geben Sie dem Profil im Popupfenster den Namen „IIS“. Klicken Sie auf OK, um das Profil zu erstellen.

  3. Wählen Sie bei der Einstellung Start den Eintrag IIS aus der Liste aus.

  4. Aktivieren Sie das Kontrollkästchen Browser starten, und geben Sie die Endpunkt-URL an.

    Wenn die App HTTPS erfordert, verwenden Sie einen HTTPS-Endpunkt (https://). Verwenden Sie für HTTP einen HTTP-Endpunkt (http://).

    Geben Sie den gleichen Hostnamen und Port wie bei der zuvor angegebenen IIS-Konfiguration an, typischerweise localhost.

    Geben Sie den Namen der App am Ende der URL an.

    https://localhost/WebApplication1 (HTTPS) oder http://localhost/WebApplication1 (HTTP) sind beispielsweise gültige Endpunkt-URLs.

  5. Klicken Sie im Abschnitt Umgebungsvariablen auf die Schaltfläche Hinzufügen. Geben Sie eine Umgebungsvariable mit dem NamenASPNETCORE_ENVIRONMENT und dem WertDevelopment an.

  6. Legen Sie im Bereich Webservereinstellungen die App-URL auf den gleichen Wert fest, der für die Endpunkt-URL für Browser starten verwendet wird.

  7. Wählen Sie für die Einstellung Hostingmodel in Visual Studio 2019 oder höher Standard, um das vom Projekt verwendete Hostingmodell zu nutzen. Wenn das Projekt die <AspNetCoreHostingModel>-Eigenschaft in seiner Projektdatei festlegt, wird der Wert der Eigenschaft (InProcess oder OutOfProcess) verwendet. Wenn die Eigenschaft nicht vorhanden ist, wird das standardmäßige Hostingmodell der App (In-Process) verwendet. Wenn die App eine explizite Einstellung des Hostingmodells erfordert, die sich vom normalen Hostingmodell der App unterscheidet, legen Sie das Hostingmodell nach Bedarf entweder auf In Process oder Out Of Process fest.

  8. Speichern Sie den Profilnamen.

Wenn Sie nicht Visual Studio verwenden, können Sie in der App im Ordner Properties manuell ein Startprofil zur Datei launchSettings.json hinzufügen. Im folgenden Beispiel wird das Profil für die Verwendung des HTTPS-Protokolls konfiguriert:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/WebApplication1",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "https://localhost/WebApplication1",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Vergewissern Sie sich, dass die Endpunkte applicationUrl und launchUrl übereinstimmen, und verwenden Sie das gleiche Protokoll wie die IIS-Bindungskonfiguration, entweder HTTP oder HTTPS.

Ausführen des Projekts

Führen Sie Visual Studio als Administrator aus:

  • Vergewissern Sie sich, dass die Dropdownliste der Buildkonfiguration auf Debuggen festgelegt ist.
  • Legen Sie die Schaltfläche „Debugging starten“ auf das Profil IIS fest, und wählen Sie zum Starten der App die Schaltfläche aus.

Visual Studio fordert möglicherweise zu einem Neustart auf, wenn das Profil nicht als Administrator ausgeführt wird. Wenn Sie dazu aufgefordert werden, starten Sie Visual Studio neu.

Bei Verwendung eines nicht vertrauenswürdigen Entwicklungszertifikats müssen Sie für den Browser möglicherweise eine Ausnahme für das nicht vertrauenswürdige Zertifikat erstellen.

Hinweis

Das Debuggen einer Releasebuildkonfiguration mit Nur mein Code und Compileroptimierungen führt zu einer beeinträchtigten Leistung. Beispielsweise werden Haltepunkte nicht erreicht.

Zusätzliche Ressourcen

In diesem Artikel wird die Visual Studio-Unterstützung des Debuggens von ASP.NET Core-Apps beschrieben, die mit IIS unter Windows Server ausgeführt werden. Dieses Thema führt Sie durch die Aktivierung dieses Szenarios und Einrichtung eines Projekts.

Voraussetzungen

  • Visual Studio für Windows
  • Workload ASP.NET und Webentwicklung
  • Workload Plattformübergreifende .NET Core-Entwicklung
  • X.509-Sicherheitszertifikat (für HTTPS-Unterstützung)

Aktivieren von IIS

  1. Navigieren Sie in Windows zu Systemsteuerung>Programme>Programme und Features>Windows-Features aktivieren oder deaktivieren (links auf dem Bildschirm).
  2. Aktivieren Sie das Kontrollkästchen Internetinformationsdienste. Klicken Sie auf OK.

Für die IIS-Installation ist möglicherweise ein Neustart des Systems erforderlich.

Konfigurieren von IIS

Für IIS muss eine Website mit Folgendem konfiguriert sein:

  • Hostname: In der Regel wird die Standardwebsite mit dem Hostnamenlocalhost verwendet. Allerdings funktioniert jede gültige IIS-Website mit einem eindeutigen Hostnamen.
  • Sitebindung
    • Für Anwendungen, die HTTPS benötigen, erstellen Sie mithilfe eines Zertifikats eine Bindung an Port 443. In der Regel wird das IIS Express-Entwicklungszertifikat verwendet, doch es funktioniert auch jedes andere gültige Zertifikat.
    • Bei Apps, die HTTP verwenden, bestätigen Sie das Vorhandensein einer Bindung an Port 80, oder erstellen Sie für eine neue Website eine Bindung an Port 80.
    • Verwenden Sie eine einzelne Bindung für entweder HTTP oder HTTPS. Die gleichzeitige Bindung sowohl an HTTP- als auch an HTTPS-Ports wird nicht unterstützt.

Aktivieren von IIS-Unterstützung in Visual Studio zur Entwicklungszeit

  1. Starten Sie den Visual Studio-Installer.

  2. Klicken Sie für die Visual Studio-Installation, die Sie für die Unterstützung von IIS-Entwicklungszeit verwenden möchten, auf Ändern.

  3. Wechseln Sie für die Workload ASP.NET- und Webentwicklung zur Komponente Entwicklungszeit-IIS-Unterstützung , und installieren Sie sie.

    Die Komponente befindet sich im Abschnitt Optional unter Entwicklungszeit-IIS-Unterstützung im Bereich Installationsdetails rechts neben den Workloads. Sie installiert das ASP.NET Core-Modul – ein natives IIS-Modul, das zur Ausführung von ASP.NET Core-Anwendungen mit IIS erforderlich ist.

Konfigurieren des Projekts

HTTPS-Umleitung

Für ein neues Projekt, das HTTPS erfordert, müssen Sie das Kontrollkästchen Für HTTPS konfigurieren im Fenster Neue ASP.NET Core-Webanwendung erstellen aktivieren. Wenn Sie das Kontrollkästchen aktivieren, werden die HTTPS-Umleitung und HSTS-Middleware bei der Erstellung zur App hinzugefügt.

Verwenden Sie für ein vorhandenes Projekt, das HTTPS erfordert, die HTTPS-Umleitung und HSTS-Middleware in Startup.Configure. Weitere Informationen finden Sie unter Erzwingen von HTTPS in ASP.NET Core.

Für ein Projekt, das HTTP verwendet, werden die HTTPS-Umleitung und HSTS-Middleware nicht der App hinzugefügt. Es ist keine App-Konfiguration erforderlich.

IIS-Startprofil

So erstellen Sie ein neues Startprofil, um IIS-Unterstützung zur Entwicklungszeit hinzuzufügen:

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt. Klicken Sie auf Eigenschaften. Öffnen Sie die Registerkarte Debuggen.

  2. Klicken Sie für Profil auf die Schaltfläche Neu. Geben Sie dem Profil im Popupfenster den Namen „IIS“. Klicken Sie auf OK, um das Profil zu erstellen.

  3. Wählen Sie bei der Einstellung Start den Eintrag IIS aus der Liste aus.

  4. Aktivieren Sie das Kontrollkästchen Browser starten, und geben Sie die Endpunkt-URL an.

    Wenn die App HTTPS erfordert, verwenden Sie einen HTTPS-Endpunkt (https://). Verwenden Sie für HTTP einen HTTP-Endpunkt (http://).

    Geben Sie den gleichen Hostnamen und Port wie bei der zuvor angegebenen IIS-Konfiguration an, typischerweise localhost.

    Geben Sie den Namen der App am Ende der URL an.

    https://localhost/WebApplication1 (HTTPS) oder http://localhost/WebApplication1 (HTTP) sind beispielsweise gültige Endpunkt-URLs.

  5. Klicken Sie im Abschnitt Umgebungsvariablen auf die Schaltfläche Hinzufügen. Geben Sie eine Umgebungsvariable mit dem NamenASPNETCORE_ENVIRONMENT und dem WertDevelopment an.

  6. Legen Sie im Bereich Webservereinstellungen die App-URL auf den gleichen Wert fest, der für die Endpunkt-URL für Browser starten verwendet wird.

  7. Wählen Sie für die Einstellung Hostingmodel in Visual Studio 2019 oder höher Standard, um das vom Projekt verwendete Hostingmodell zu nutzen. Wenn das Projekt die <AspNetCoreHostingModel>-Eigenschaft in seiner Projektdatei festlegt, wird der Wert der Eigenschaft (InProcess oder OutOfProcess) verwendet. Wenn die Eigenschaft nicht vorhanden ist, wird das standardmäßige Hostingmodell der App (Out-of-Process) verwendet. Wenn die App eine explizite Einstellung des Hostingmodells erfordert, die sich vom normalen Hostingmodell der App unterscheidet, legen Sie das Hostingmodell nach Bedarf entweder auf In Process oder Out Of Process fest.

  8. Speichern Sie den Profilnamen.

Wenn Sie nicht Visual Studio verwenden, können Sie in der App im Ordner Properties manuell ein Startprofil zur Datei launchSettings.json hinzufügen. Im folgenden Beispiel wird das Profil für die Verwendung des HTTPS-Protokolls konfiguriert:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/WebApplication1",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "https://localhost/WebApplication1",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Vergewissern Sie sich, dass die Endpunkte applicationUrl und launchUrl übereinstimmen, und verwenden Sie das gleiche Protokoll wie die IIS-Bindungskonfiguration, entweder HTTP oder HTTPS.

Ausführen des Projekts

Führen Sie Visual Studio als Administrator aus:

  • Vergewissern Sie sich, dass die Dropdownliste der Buildkonfiguration auf Debuggen festgelegt ist.
  • Legen Sie die Schaltfläche „Debugging starten“ auf das Profil IIS fest, und wählen Sie zum Starten der App die Schaltfläche aus.

Visual Studio fordert möglicherweise zu einem Neustart auf, wenn das Profil nicht als Administrator ausgeführt wird. Wenn Sie dazu aufgefordert werden, starten Sie Visual Studio neu.

Bei Verwendung eines nicht vertrauenswürdigen Entwicklungszertifikats müssen Sie für den Browser möglicherweise eine Ausnahme für das nicht vertrauenswürdige Zertifikat erstellen.

Hinweis

Das Debuggen einer Releasebuildkonfiguration mit Nur mein Code und Compileroptimierungen führt zu einer beeinträchtigten Leistung. Beispielsweise werden Haltepunkte nicht erreicht.

Zusätzliche Ressourcen