

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Schemareferenz für das Bereitstellungsmanifest
<a name="dotnet-manifest-schema"></a>

Das Deployment-Manifest ist eine JSON-Datei, die definiert, wie Elastic Beanstalk Ihre Windows-Anwendungen bereitstellen und konfigurieren soll. Dieser Abschnitt enthält eine umfassende Referenz für alle unterstützten Eigenschaften und Konfigurationsoptionen im Manifestschema.

## Manifest-Struktur
<a name="dotnet-manifest-schema-structure"></a>

Das Bereitstellungsmanifest folgt einem bestimmten JSON-Schema mit der folgenden Struktur auf oberster Ebene:

**Example Grundlegende Manifeststruktur**  

```
{
  "manifestVersion": 1,
  "skipIISReset": false,
  "iisConfig": {
    "websites": [...],
    "appPools": [...]
  },
  "deployments": {
    "msDeploy": [...],
    "aspNetCoreWeb": [...],
    "custom": [...]
  }
}
```

### Eigenschaften der obersten Ebene
<a name="dotnet-manifest-schema-top-level"></a>

`manifestVersion` (Erforderlich)  
*Typ*: Zahl  
*Standard*: 1  
*Gültige Werte: 1*  
Gibt die Version des Manifestschemas an. Derzeit wird nur Version 1 unterstützt.

`skipIISReset` (optional)  
*Typ*: Boolesch  
*Standard:* false  
Steuert, ob IIS während der Anwendungsbereitstellung zurückgesetzt wird. Dieses Flag betrifft sowohl Bereitstellungstypen als `msDeploy` auch `aspNetCoreWeb` Bereitstellungstypen.  
*Verhalten:*  
+ *Nicht angegeben oder `false` (Standard):* IIS-Resets werden bei Installations-, Deinstallations- und Aktualisierungsvorgängen durchgeführt. Dies ist das traditionelle Verhalten.
+ *`true`:* IIS-Resets werden bei Bereitstellungsvorgängen übersprungen.
*Vorteile:*  
+ *Geringere Ausfallzeiten* — Bei Anwendungen kommt es während der Bereitstellung zu kürzeren Serviceunterbrechungen.
+ *Schnellere Bereitstellungen* — Eliminiert die Zeit, die IIS benötigt, um vollständig neu zu starten und neu zu initialisieren.
Bei Verwendung `skipIISReset` führt der [RestartAppServer](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RestartAppServer.html)Vorgang unabhängig von dieser Flag-Einstellung einen IIS-Reset durch.
*Beispiel:*  

```
{
  "manifestVersion": 1,
  "skipIISReset": true,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "my-dotnet-core-app",
        "parameters": {
          "archive": "dotnet-core-app.zip",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

`deployments` (Erforderlich)  
*Typ:* Objekt  
Enthält die Bereitstellungskonfigurationen für Ihre Anwendungen. Dieses Objekt kann `custom` Bereitstellungstypen `msDeploy``aspNetCoreWeb`, und enthalten.

`iisConfig` (optional)  
*Typ:* Objekt  
Definiert IIS-Konfigurationseinstellungen, die vor der Bereitstellung von Anwendungen angewendet werden sollen. Unterstützt sowohl die Website- als auch die Anwendungspoolkonfiguration.

## IIS-Konfiguration
<a name="dotnet-manifest-schema-iis-config"></a>

In `iisConfig` diesem Abschnitt können Sie IIS-Einstellungen konfigurieren, bevor Sie Ihre Anwendungen bereitstellen. Dazu gehören die Einrichtung von Anwendungspools mit bestimmten Konfigurationen und die Konfiguration von IIS-Websites mit benutzerdefinierten Bindungen.

### IIS-Websites
<a name="dotnet-manifest-schema-websites"></a>

IIS-Websites ermöglichen es Ihnen, benutzerdefinierte Website-Einstellungen, einschließlich physischer Pfade und Netzwerkbindungen, zu konfigurieren, bevor Sie Ihre Anwendungen bereitstellen.

**Wichtige Überlegungen zur Erstellung verschiedener IIS-Websites**  
*Reihenfolge der Einrichtung der Website:* Websites werden sequentiell in der Reihenfolge konfiguriert, in der sie im `websites` Array erscheinen. Die Plattform verarbeitet jede Website-Konfiguration der Reihe nach. Achten Sie daher auf die richtige Reihenfolge, wenn Sie Abhängigkeiten zwischen Websites haben.
*Firewall und Portzugriff:* Nur Port 80 wird durch die standardmäßige Windows-Firewallkonfiguration von Elastic Beanstalk automatisch verfügbar gemacht. Wenn Sie Websites so konfigurieren, dass sie nicht standardmäßige Ports verwenden, müssen Sie mithilfe von EExtensions oder benutzerdefinierten Deployment-Skripten benutzerdefinierte Firewall-Regeln definieren, um externen Zugriff auf diese Ports zu ermöglichen.

**Example Konfiguration der Website**  

```
{
  "iisConfig": {
    "websites": [
      {
        "name": "MyCustomSite",
        "physicalPath": "C:\inetpub\wwwroot\mysite",
        "bindings": [
          {
            "protocol": "http",
            "port": 8080,
            "hostName": "mysite.local"
          },
          {
            "protocol": "https",
            "port": 8443
          }
        ]
      }
    ]
  }
}
```Eigenschaften der Website

`name` (Erforderlich)  
*Typ:* Zeichenfolge  
Der Name der IIS-Website. Dieser Name wird zur Identifizierung der Website im IIS-Manager verwendet und muss innerhalb der IIS-Konfiguration eindeutig sein.

`physicalPath` (Erforderlich)  
*Typ:* Zeichenfolge  
Der physische Pfad auf dem Server, auf dem die Website-Dateien gespeichert sind. Dieser Pfad muss für den IIS-Arbeitsprozess zugänglich sein.

`bindings` (Erforderlich)  
*Typ*: Array  
*Mindestanzahl der Artikel:* 1  
Eine Reihe von Bindungskonfigurationen, die definieren, wie die Website auf Netzwerkanfragen reagiert. Jede Bindung spezifiziert ein Protokoll, einen Port und einen optionalen Hostnamen.

#### Webseiten-Bindungen
<a name="dotnet-manifest-schema-bindings"></a>

Website-Bindungen definieren die Netzwerkendpunkte, an denen Ihre IIS-Website auf eingehende Anfragen wartet.

`protocol` (Erforderlich)  
*Typ:* Zeichenfolge  
*Gültige Werte:* „http“, „https“  
Das für die Bindung verwendete Protokoll.

`port` (Erforderlich)  
*Typ*: Ganzzahl  
*Gültiger Bereich: 1-65535*  
Die Portnummer, über die die Website Anfragen abhört.

`hostName` (optional)  
*Typ:* Zeichenfolge  
Der Hostname (Domainname) für die Bindung.

### Anwendungspools
<a name="dotnet-manifest-schema-app-pools"></a>

Anwendungspools bieten eine Isolierung zwischen Anwendungen und ermöglichen es Ihnen, Laufzeiteinstellungen für Anwendungsgruppen zu konfigurieren.

**Example Konfiguration des Anwendungspools**  

```
{
  "iisConfig": {
    "appPools": [
      {
        "name": "MyAppPool",
        "enable32Bit": false,
        "managedPipelineMode": "Integrated",
        "managedRuntimeVersion": "v4.0",
        "queueLength": 1000,
        "cpu": {
          "limitPercentage": 80,
          "limitAction": "Throttle",
          "limitMonitoringInterval": 5
        },
        "recycling": {
          "regularTimeInterval": 1440,
          "requestLimit": 10000,
          "memory": 1048576,
          "privateMemory": 524288
        }
      }
    ]
  }
}
```Eigenschaften des Anwendungspools

`name` (Erforderlich)  
*Typ:* Zeichenfolge  
Der Name des Anwendungspools. Dieser Name wird verwendet, um in Bereitstellungskonfigurationen auf den Pool zu verweisen.

`enable32Bit` (optional)  
*Typ*: Boolesch  
Ermöglicht die Ausführung einer 32-Bit-Anwendung auf einer 64-Bit-Version von Windows. Wird `true` für ältere Anwendungen, die 32-Bit-Kompatibilität erfordern, auf gesetzt.

`managedPipelineMode` (optional)  
*Typ:* Zeichenfolge  
*Gültige Werte:* „Integrated“, „Classic“  
Gibt den Modus zur Anforderungsverarbeitung für den Anwendungspool an.

`managedRuntimeVersion` (optional)  
*Typ:* Zeichenfolge  
*Gültige Werte:* „Kein verwalteter Code“, „v2.0", „v4.0"  
Gibt die .NET Framework-Version für den Anwendungspool an.

`queueLength` (optional)  
*Typ*: Ganzzahl  
Maximale Anzahl von Anfragen, die HTTP.sys für den Anwendungspool in die Warteschlange stellt, bevor weitere Anfragen zurückgewiesen werden.

#### CPU-Konfiguration
<a name="dotnet-manifest-schema-cpu-config"></a>

Das `cpu` Objekt konfiguriert die CPU-Nutzungslimits und die Überwachung für den Anwendungspool.

`limitPercentage` (optional)  
*Typ*: Zahl  
Maximaler Prozentsatz der CPU-Zeit, den Arbeitsprozesse im Anwendungspool verbrauchen können.

`limitAction` (optional)  
*Typ:* Zeichenfolge  
*Gültige Werte:* "NoAction„, „KillW3WP“, „Throttle“, "“ ThrottleUnderLoad  
Aktion, die ergriffen werden soll, wenn das CPU-Limit erreicht ist.

`limitMonitoringInterval` (optional)  
*Typ*: Zahl  
Reset-Zeitraum (in Minuten) für CPU-Überwachungs- und Drosselungsgrenzwerte.

#### Konfiguration recyceln
<a name="dotnet-manifest-schema-recycling-config"></a>

Das `recycling` Objekt konfiguriert, wann und wie Worker-Prozesse im Anwendungspool wiederverwendet werden.

`regularTimeInterval` (optional)  
*Typ*: Ganzzahl  
Zeitintervall (in Minuten), nach dem der Anwendungspool wiederverwendet wird. Auf 0 setzen, um das zeitbasierte Recycling zu deaktivieren.

`requestLimit` (optional)  
*Typ*: Ganzzahl  
Maximale Anzahl von Anfragen, die der Anwendungspool vor dem Recycling verarbeitet.

`memory` (optional)  
*Typ*: Ganzzahl  
Menge an virtuellem Speicher (in Kilobyte), die das Recycling von Arbeitsprozessen auslöst.

`privateMemory` (optional)  
*Typ*: Ganzzahl  
Menge an privatem Speicher (in Kilobyte), der das Recycling von Arbeitsprozessen auslöst.

## Bereitstellungstypen
<a name="dotnet-manifest-schema-deployments"></a>

Das `deployments` Objekt enthält Arrays von Bereitstellungskonfigurationen für verschiedene Anwendungstypen. Jeder Bereitstellungstyp hat spezifische Eigenschaften und Anwendungsfälle.

### MSDeploy Bereitstellungen
<a name="dotnet-manifest-schema-msdeploy"></a>

MSDeploy Bereitstellungen werden für herkömmliche.NET-Framework-Anwendungen verwendet, die mit Web Deploy () MSDeploy bereitgestellt werden können.

**Example MSDeploy Bereitstellungskonfiguration**  

```
{
  "deployments": {
    "msDeploy": [
      {
        "name": "WebApp",
        "description": "Main web application",
        "parameters": {
          "appBundle": "webapp.zip",
          "iisPath": "/",
          "appPool": "DefaultAppPool"
        }
      }
    ]
  }
}
```MSDeploy Eigenschaften der Bereitstellung

`name` (Erforderlich)  
*Typ:* Zeichenfolge  
Eindeutiger Name für die Bereitstellung. Dieser Name muss für alle Bereitstellungen im Manifest eindeutig sein.

`description` (optional)  
*Typ:* Zeichenfolge  
Für Menschen lesbare Beschreibung der Bereitstellung.

`parameters` (Erforderlich)  
*Typ:* Objekt  
Konfigurationsparameter für den MSDeploy Vorgang.

`scripts` (optional)  
*Typ:* Objekt  
PowerShell Skripts, die in verschiedenen Phasen des Bereitstellungslebenszyklus ausgeführt werden.

#### MSDeploy Parameter
<a name="dotnet-manifest-schema-msdeploy-parameters"></a>

`appBundle` (Erforderlich)  
*Typ:* Zeichenfolge  
Pfad zum Anwendungspaket (ZIP-Datei) relativ zur Manifestdatei. Dieses Paket enthält die Anwendungsdateien, die bereitgestellt werden sollen.

`iisWebSite` (optional)  
*Typ:* Zeichenfolge  
*Standard:* „Standardwebsite“  
Die IIS-Website, auf der die Anwendung bereitgestellt werden soll. Standardmäßig werden Anwendungen auf der „Standardwebsite“ bereitgestellt. Optional können Sie einen anderen Namen für die Website angeben, z. B. einen, der im `iisConfig.websites` Abschnitt konfiguriert wurde.

`iisPath` (optional)  
*Typ:* Zeichenfolge  
*Standard:* „/“  
Virtueller Verzeichnispfad in IIS, in dem die Anwendung bereitgestellt wird. Verwenden Sie „/“ für den Stammpfad oder „/api“ für ein Unterverzeichnis.

`appPool` (optional)  
*Typ:* Zeichenfolge  
Name des Anwendungspools, in dem diese Anwendung ausgeführt werden soll.

### ASP.NET Core-Bereitstellungen
<a name="dotnet-manifest-schema-aspnetcore"></a>

ASP.NET Core-Bereitstellungen wurden speziell für .NET Core- und .NET 5\+-Anwendungen entwickelt.

**Example Konfiguration der ASP.NET Core-Bereitstellung**  

```
{
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "CoreAPI",
        "description": "ASP.NET Core Web API",
        "parameters": {
          "appBundle": "coreapi.zip",
          "iisPath": "/api",
          "appPool": "CoreAppPool"
        }
      }
    ]
  }
}
```

ASP.NET Core-Bereitstellungen verwenden dieselbe Eigenschaftsstruktur wie MSDeploy Bereitstellungen, wobei der Hauptunterschied in der für die Anwendung verwendeten Laufzeitumgebung und dem Hostingmodell besteht.ASP.NET Core-Bereitstellungsparameter

`appBundle` (Erforderlich)  
*Typ:* Zeichenfolge  
Pfad zum Anwendungspaket relativ zur Manifestdatei. Dies kann entweder ein ZIP-Archiv oder ein Verzeichnispfad sein, der die veröffentlichte ASP.NET Core-Anwendung enthält.

`iisWebSite` (optional)  
*Typ:* Zeichenfolge  
*Standard:* „Standardwebsite“  
Die IIS-Website, auf der die ASP.NET Core-Anwendung bereitgestellt werden soll. Standardmäßig werden Anwendungen auf der „Standardwebsite“ bereitgestellt. Optional können Sie einen anderen Namen für die Website angeben, z. B. einen, der im `iisConfig.websites` Abschnitt konfiguriert wurde.

`iisPath` (optional)  
*Typ:* Zeichenfolge  
*Standard:* „/“  
Virtueller Verzeichnispfad in IIS für die ASP.NET Core-Anwendung.

`appPool` (optional)  
*Typ:* Zeichenfolge  
Anwendungspool für die ASP.NET Core-Anwendung. Der Pool wird entsprechend für das ASP.NET Core-Hosting konfiguriert.

### Benutzerdefinierte Bereitstellungen
<a name="dotnet-manifest-schema-custom"></a>

Benutzerdefinierte Bereitstellungen bieten mithilfe PowerShell von Skripten die vollständige Kontrolle über den Bereitstellungsprozess. Dieser Bereitstellungstyp ist für komplexe Szenarien nützlich, die eine benutzerdefinierte Installation, Konfiguration oder Bereitstellungslogik erfordern.

**Example Benutzerdefinierte Bereitstellungskonfiguration**  

```
{
  "deployments": {
    "custom": [
      {
        "name": "CustomService",
        "description": "Custom Windows service deployment",
        "architecture": 32,
        "scripts": {
          "install": {
            "file": "install-service.ps1"
          },
          "restart": {
            "file": "restart-service.ps1"
          },
          "uninstall": {
            "file": "uninstall-service.ps1",
            "ignoreErrors": true
          }
        }
      }
    ]
  }
}
```Benutzerdefinierte Bereitstellungseigenschaften

`name` (Erforderlich)  
*Typ:* Zeichenfolge  
Eindeutiger Name für die benutzerdefinierte Bereitstellung.

`description` (optional)  
*Typ:* Zeichenfolge  
Beschreibung der benutzerdefinierten Bereitstellung.

`architecture` (optional)  
*Typ*: Ganzzahl  
*Standard:* 32  
*Gültige Werte:* 32, 64  
Die Architekturspezifikation für den Ausführungsmodus von Powershell-Skripten

`scripts` (Erforderlich)  
*Typ:* Objekt  
PowerShell Skripten, die das Bereitstellungsverhalten definieren. Benutzerdefinierte Bereitstellungen unterstützen im Vergleich zu anderen Bereitstellungstypen zusätzliche Skripttypen.

## Bereitstellungsskripte
<a name="dotnet-manifest-schema-scripts"></a>

 PowerShell Bereitstellungsskripten sind Skripten, die zu bestimmten Zeitpunkten während des Bereitstellungszyklus ausgeführt werden. Verschiedene Bereitstellungstypen unterstützen unterschiedliche Gruppen von Skriptereignissen.

### Skriptereignisse
<a name="dotnet-manifest-schema-script-events"></a>

Die folgenden Skriptereignisse sind je nach Bereitstellungstyp verfügbar:Standardbereitstellungsskripts (MSDeploy und aspNetCore Web)

`preInstall`  
Wird ausgeführt, bevor die Anwendung installiert oder aktualisiert wird.

`postInstall`  
Wird ausgeführt, nachdem die Anwendung installiert oder aktualisiert wurde.

`preRestart`  
Wird ausgeführt, bevor die Anwendung neu gestartet wird.

`postRestart`  
Wird ausgeführt, nachdem die Anwendung neu gestartet wurde.

`preUninstall`  
Wird ausgeführt, bevor die Anwendung deinstalliert wird.

`postUninstall`  
Wird ausgeführt, nachdem die Anwendung deinstalliert wurde.Benutzerdefinierte Bereitstellungsskripten (nur benutzerdefinierte Bereitstellungen)

`install`  
Primäres Installationsskript für benutzerdefinierte Bereitstellungen. Dieses Skript ist für die Installation der Anwendung oder des Dienstes verantwortlich.

`restart`  
Skript zum Neustarten der Anwendung oder des Dienstes. Wird aufgerufen, wenn die Umgebung neu gestartet wird.

`uninstall`  
Skript zur Deinstallation der Anwendung oder des Dienstes. Wird beim Beenden der Umgebung oder beim Entfernen der Anwendung aufgerufen.

### Eigenschaften des Skripts
<a name="dotnet-manifest-schema-script-properties"></a>

Jedes Skript ist als Objekt mit den folgenden Eigenschaften definiert:

`file` (Erforderlich)  
*Typ:* Zeichenfolge  
Pfad zur PowerShell Skriptdatei relativ zur Manifestdatei. Das Skript sollte eine `.ps1` Erweiterung haben.

`ignoreErrors` (optional)  
*Typ*: Boolesch  
*Standard:* false  
Wenn diese Option auf gesetzt ist`true`, wird die Bereitstellung auch dann fortgesetzt, wenn das Skript fehlschlägt. Verwenden Sie diese Option für unkritische Skripts oder Bereinigungsvorgänge.

**Example Beispiel für eine Skriptkonfiguration**  

```
{
  "scripts": {
    "preInstall": {
      "file": "backup-config.ps1",
      "ignoreErrors": true
    },
    "postInstall": {
      "file": "configure-app.ps1"
    }
  }
}
```