<serviceHostingEnvironment>

Dieses Element definiert den Typ, der von der Diensthostingumgebung für einen bestimmten Transport instanziiert wird. Falls dieses Element leer ist, wird der Standardtyp verwendet.

<<system.serviceModel>>
  <serviceHostingEnvironment>

<serviceHostingEnvironment>
         aspNetCompatibilityEnabled="Boolean"
       minFreeMemoryPercentageToActivateService="Integer"
     <baseAddressPrefixFilters>
                <add prefix="string"/>
          </baseAddressPrefixFilters>
     <transportConfigurationTypes>
        <add name="String" 
             transportConfigurationType="String" />
     </transportConfigurationTypes>
</serviceHostingEnvironment>

Attribute und Elemente

Attribute

Attribut Beschreibung

aspNetCompatibilityEnabled

Ein boolescher Wert, der angibt, ob der ASP.NET-Kompatibilitätsmodus für die aktuelle Anwendung aktiviert wurde. Die Standardeinstellung ist false.

Wenn dieses Attribut auf true festgelegt wird, fließen die Anforderungen an die Windows Communication Foundation (WCF)-Dienste durch die ASP.NET-HTTP-Pipeline, und die Kommunikation über Nicht-HTTP-Protokolle wird untersagt. Weitere Informationen finden Sie unter WCF Services and ASP.NET.

minFreeMemoryPercentageToActivateService

Eine ganze Zahl, welche die Mindestmenge des freien Arbeitsspeichers angibt, der auf dem System zur Verfügung stehen sollte, bevor ein WCF-Dienst aktiviert werden kann.

Warnung

Das Festlegen dieses Attributs zusammen mit teilweiser Vertrauenswürdigkeit in der web.config-Datei eines WCF-Diensts führt beim Ausführen des Diensts zu SecurityException.

Untergeordnete Elemente

Element Beschreibung

<baseAddressPrefixFilters>

Eine Auflistung der Konfigurationselemente, die den Präfixfilter für die vom Diensthost verwendeten Basisadressen angeben.

<transportConfigurationTypes>

Eine Auflistung der Konfigurationselemente, die den Typ eines bestimmten Transports identifizieren.

Übergeordnete Elemente

Element Beschreibung

serviceModel

Das Stammelement aller WCF-Konfigurationselemente.

Hinweise

WCF-Dienste werden in gehosteten Anwendungsdomänen (AppDomain) standardmäßig zusammen mit ASP.NET ausgeführt. Selbst wenn WCF und ASP.NET in derselben AppDomain gleichzeitig ausgeführt werden können, werden die WCF-Anforderungen nicht standardmäßig von der ASP.NET-HTTP-Pipeline verarbeitet. Folglich stehen einige Elemente der ASP.NET-Anwendungsplattform nicht für WCF-Dienste zur Verfügung. Dazu gehören

  • ASP.NET-Datei-/URL-Autorisierung
  • ASP.NET-Identitätswechsel
  • Cookiebasierter Sitzungszustand
  • HttpContext.Current
  • Pipeline-Erweiterbarkeit über benutzerdefiniertes HttpModule

Falls Ihre WCF-Dienste im ASP.NET-Kontext funktionieren müssen und nur über HTTP kommunizieren, können Sie den ASP.NET-Kompatibilitätsmodus von WCF verwenden. Dieser Modus wird aktiviert, wenn das aspNetCompatibilityEnabled-Attribut auf Anwendungsebene auf true festgelegt ist. Die Dienstimplementierungen müssen die Möglichkeit, im Kompatibilitätsmodus ausgeführt zu werden, mit der AspNetCompatibilityRequirementsAttribute-Klasse deklarieren. Wenn der Kompatibilitätsmodus aktiviert ist,

  • wird vor der WCF-Autorisierung die ASP.NET-Datei-/URL-Autorisierung erzwungen. Eine Autorisierungsentscheidung basiert auf der Anforderungsidentität auf der Transportebene. Identitäten auf der Nachrichtenebene werden ignoriert.
  • beginnen die WCF-Dienstvorgänge mit der Ausführung im ASP.NET-Identitätswechselkontext. Falls sowohl der ASP.NET-Identitätswechsel als auch der WCF-Identitätswechsel für einen bestimmten Dienst aktiviert sind, gilt der WCF-Identitätswechselkontext.
  • kann HttpContext.Current im WCF-Dienstcode verwendet werden. Die Dienste werden daran gehindert, Nicht-HTTP-Endpunkte verfügbar zu machen.
  • werden die WCF-Anforderungen von der ASP.NET-Pipeline verarbeitet. HttpModules, die für eingehende Anforderungen konfiguriert wurden, können ebenfalls WCF-Anforderungen verarbeiten. Dazu gehören ASP.NET-Plattformkomponenten (z. B. SessionStateModule) sowie benutzerdefinierte Drittanbietermodule.

Beispiel

Das folgende Codebeispiel zeigt, wie der ASP-Kompatibilitätsmodus aktiviert wird.

Code

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

Siehe auch

Referenz

ServiceHostingEnvironmentSection
ServiceHostingEnvironment

Weitere Ressourcen

Hosting
WCF Services and ASP.NET