Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieses Element definiert den Typ, den die Diensthostingumgebung für einen bestimmten Transport instanziiert. Wenn dieses Element leer ist, wird der Standardtyp verwendet. Dieses Element kann nur auf Anwendungs- oder Computerebene konfigurationsdateien verwendet werden.
<configuration>
<system.serviceModel>
<serviceHostingEnvironment>
Syntax
<serviceHostingEnvironment aspNetCompatibilityEnabled="Boolean"
minFreeMemoryPercentageToActivateService="Integer"
multipleSiteBindingsEnabled="Boolean">
<baseAddressPrefixFilters>
<add prefix="string" />
</baseAddressPrefixFilters>
<serviceActivations>
<add factory="String"
service="String" />
</serviceActivations>
<transportConfigurationTypes>
<add name="String"
transportConfigurationType="String" />
</transportConfigurationTypes>
</serviceHostingEnvironment>
Attribute und Elemente
In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.
Attribute
| Merkmal | Description |
|---|---|
| aspNetCompatibilityEnabled | Ein boolescher Wert, der angibt, ob der ASP.NET Kompatibilitätsmodus für die aktuelle Anwendung aktiviert wurde. Der Standardwert lautet false.Wenn dieses Attribut auf true festgelegt ist, fließen Anforderungen an Windows Communication Foundation (WCF)-Dienste über die ASP.NET HTTP-Pipeline, und die Kommunikation über Nicht-HTTP-Protokolle ist unzulässig. Weitere Informationen finden Sie unter WCF-Dienste und ASP.NET. |
| minFreeMemoryPercentageToActivateService | Eine ganze Zahl, die die Mindestmenge an freiem Arbeitsspeicher angibt, die für das System verfügbar sein soll, bevor ein WCF-Dienst aktiviert werden kann. Vorsicht: Wenn Sie dieses Attribut zusammen mit einer teilweisen Vertrauensstellung in der web.config-Datei eines WCF-Diensts angeben, führt dies dazu SecurityException , dass der Dienst ausgeführt wird. |
| multipleSiteBindingsEnabled | Ein boolescher Wert, der angibt, ob mehrere IIS-Bindungen pro Website aktiviert sind. IIS besteht aus Websites, bei denen es sich um Container für virtuelle Anwendungen handelt, die virtuelle Verzeichnisse enthalten. Auf die Anwendung auf einer Website kann über eine oder mehrere IIS-Bindungen zugegriffen werden. Eine IIS-Bindung stellt zwei Informationselemente bereit: ein Bindungsprotokoll und Bindungsinformationen. Das Bindungsprotokoll definiert das Schema, über das die Kommunikation erfolgt, und Bindungsinformationen sind die Informationen, die für den Zugriff auf die Website verwendet werden. Ein Beispiel für ein Bindungsprotokoll kann HTTP sein, während Bindungsinformationen eine IP-Adresse, Port, Hostheader usw. enthalten können. IIS unterstützt die Angabe mehrerer IIS-Bindungen pro Standort, was zu mehreren Basisadressen pro Schema führt. Ein unter einer Website gehosteter Windows Communication Foundation (WCF)-Dienst ermöglicht jedoch nur eine Bindung an eine baseAddress pro Schema. Um mehrere IIS-Bindungen pro Website für einen Windows Communication Foundation (WCF)-Dienst zu aktivieren, legen Sie dieses Attribut auf true. Beachten Sie, dass mehrere Websitebindungen nur für das HTTP-Protokoll unterstützt werden. Die Adresse von Endpunkten in der Konfigurationsdatei muss ein vollständiger URI sein. |
Untergeordnete Elemente
| Element | Description |
|---|---|
| <baseAddressPrefixFilters> | Eine Auflistung von Konfigurationselementen, die Präfixfilter für die vom Diensthost verwendeten Basisadressen angeben. |
| <serviceActivations> | Ein Konfigurationsabschnitt, der die Aktivierungseinstellungen beschreibt. |
| <transportConfigurationTypes> | Eine Sammlung von Konfigurationselementen, die den Typ eines bestimmten Transports identifizieren. |
Übergeordnete Elemente
| Element | Description |
|---|---|
| serviceModel | Das Stammelement aller Windows Communication Foundation (WCF)-Konfigurationselemente. |
Bemerkungen
Standardmäßig werden WCF-Dienste parallel mit ASP.NET in gehosteten Anwendungsdomänen (AppDomain) ausgeführt. Obwohl WCF und ASP.NET in derselben AppDomain koexistieren können, werden WCF-Anforderungen standardmäßig nicht von der ASP.NET HTTP-Pipeline verarbeitet. Daher sind mehrere Elemente der ASP.NET Anwendungsplattform für WCF-Dienste nicht verfügbar. Dazu gehören
ASP.NET Datei-/URL-Autorisierung
ASP.NET Identitätswechsel
Cookiebasierter Sitzungsstatus
HttpContext.Current
Pipelineerweiterbarkeit über benutzerdefinierte HttpModule
Wenn Ihre WCF-Dienste im ASP.NET Kontext funktionieren müssen und nur über HTTP kommunizieren müssen, können Sie den ASP.NET Kompatibilitätsmodus von WCF verwenden. Dieser Modus ist aktiviert, wenn das aspNetCompatibilityEnabled Attribut auf Anwendungsebene festgelegt true ist. Dienstimplementierungen müssen die Möglichkeit deklarieren, den Kompatibilitätsmodus mithilfe der AspNetCompatibilityRequirementsAttribute Klasse auszuführen. Wenn der Kompatibilitätsmodus aktiviert ist,
ASP.NET Datei-/URL-Autorisierung wird vor der WCF-Autorisierung erzwungen. Eine Autorisierungsentscheidung basiert auf der Identität auf Transportebene der Anforderung. Identitäten auf Nachrichtenebene werden ignoriert.
WCF-Dienstvorgänge werden im ASP.NET Identitätswechselkontext ausgeführt. Wenn sowohl ASP.NET Identitätswechsel als auch WCF-Identitätswechsel für einen bestimmten Dienst aktiviert sind, gilt der WCF-Identitätswechselkontext.
HttpContext.Current kann aus WCF-Dienstcode verwendet werden, und Dienste werden daran gehindert, Nicht-HTTP-Endpunkte verfügbar zu stellen.
WCF-Anforderungen werden von der ASP.NET Pipeline verarbeitet. HttpModule, die so konfiguriert wurden, dass sie auf eingehende Anforderungen reagieren, können auch WCF-Anforderungen verarbeiten. Dazu können ASP.NET Plattformkomponenten (z. B. SessionStateModule) sowie benutzerdefinierte Drittanbietermodule gehören.
Example
Im folgenden Codebeispiel wird gezeigt, wie der ASP-Kompatibilitätsmodus aktiviert wird.
Code
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>