<serviceHostingEnvironment><serviceHostingEnvironment>

Dieses Element definiert den Typ, der von der Diensthostingumgebung für einen bestimmten Transport instanziiert wird.This element defines the type the service hosting environment instantiates for a particular transport. Falls dieses Element leer ist, wird der Standardtyp verwendet.If this element is empty, the default type is used. Dieses Element kann nur über die Anwendungskonfigurationsdatei bzw. die Computerkonfigurationsdatei verwendet werden.This element can only be used at the application or machine level configuration files.

<System. ServiceModel ><system.ServiceModel>
<ServiceHostingEnvironment ><ServiceHostingEnvironment>

SyntaxSyntax

<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 ElementeAttributes and Elements

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.The following sections describe attributes, child elements, and parent elements.

AttributeAttributes

AttributAttribute BeschreibungDescription
aspNetCompatibilityEnabledaspNetCompatibilityEnabled Ein boolescher Wert, der angibt, ob der ASP.NET-Kompatibilitätsmodus für die aktuelle Anwendung aktiviert wurde.A Boolean value indicating whether the ASP.NET compatibility mode has been turned on for the current application. Die Standardeinstellung ist false.The default is false.

Wenn dieses Attribut auf true festgelegt wird, fließen die Anforderungen an die Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)-Dienste durch die ASP.NET-HTTP-Pipeline, und die Kommunikation über Nicht-HTTP-Protokolle wird untersagt.When this attribute is set to true, requests to Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) services flow through the ASP.NET HTTP pipeline, and communication over non-HTTP protocols is prohibited. Weitere Informationen finden Sie unter WCF-Dienste und ASP.NET.For more information, see WCF Services and ASP.NET.
minFreeMemoryPercentageToActivateServiceminFreeMemoryPercentageToActivateService Eine ganze Zahl, welche die Mindestmenge des freien Arbeitsspeichers angibt, der auf dem System zur Verfügung stehen sollte, bevor ein WCFWCF-Dienst aktiviert werden kann.An integer that specifies the minimum amount of free memory that should be available to the system, before a WCFWCF service can be activated. Vorsicht: Festlegen dieses Attributs zusammen mit teilweiser Vertrauenswürdigkeit in der Datei "Web.config" ein WCFWCF Dienst führt zu einer SecurityException Wenn der Dienst ausgeführt wird.Caution: Specifying this attribute along with partial trust in the web.config file of a WCFWCF service will result in a SecurityException when the service is run.
multipleSiteBindingsEnabledmultipleSiteBindingsEnabled Ein boolescher Wert, der angibt, ob mehrere IIS-Bindungen pro Website aktiviert sind.A Boolean value that specifies whether multiple IIS bindings per site is enabled.

IIS besteht aus Websites, die als Container für virtuelle Anwendungen fungieren, die virtuelle Verzeichnisse enthalten.IIS consists of web sites, which are containers for virtual applications containing virtual directories. Auf die Anwendung auf einer Website kann über eine oder mehrere IIS-Bindungen zugegriffen werden.The application in a site can be accessed through one or more IIS binding. IIS-Bindungen stellen zwei Angaben bereit: ein Bindungsprotokoll und Bindungsinformationen.An IIS binding provides two pieces of information: a binding protocol and binding information. Das Bindungsprotokoll definiert das Schema, das für die Kommunikation verwendet wird, und die Bindungsinformationen dienen dem Zugriff auf die Website.Binding protocol defines the scheme over which communication occurs, and binding information is the information used to access the site. Ein Beispiel für ein Bindungsprotokoll kann HTTP sein, wohingegen Bindungsinformationen eine IP-Adresse, einen Port, einen Hostheader usw. enthalten können.An example of a binding protocol can be HTTP, whereas binding information can contain an IP address, Port, host header, etc.

IIS unterstützt die Angabe mehrerer IIS-Bindungen pro Website, was zu mehreren Basisadressen pro Schema führt.IIS supports specifying multiple IIS bindings per site, which results in multiple base addresses per scheme. Ein unter einer Website gehosteter Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)-Dienst ermöglicht die Bindung zu nur einem baseAddress-Element pro Schema.However, a Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) service hosted under a site allows binding to only one baseAddress per scheme.

Um mehrere IIS-Bindungen pro Website für einen Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)-Dienst zu aktivieren, legen Sie dieses Attribut auf true fest.To enable multiple IIS bindings per site for a Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) service, set this attribute to true. Beachten Sie, dass mehrere Bindungen pro Website nur für das HTTP-Protokoll unterstützt werden.Notice that multiple site binding is supported only for the HTTP protocol. Die Adresse der Endpunkte in der Konfigurationsdatei muss ein vollständiger URI sein.The address of endpoints in the configuration file needs to be a complete URI.

Untergeordnete ElementeChild Elements

ElementElement BeschreibungDescription
<BaseAddressPrefixFilters ><baseAddressPrefixFilters> Eine Auflistung der Konfigurationselemente, die den Präfixfilter für die vom Diensthost verwendeten Basisadressen angeben.A collection of configuration elements that specify prefix filters for the base addresses used by the service host.
<ServiceActivations ><serviceActivations> Ein Konfigurationsabschnitt, der Aktivierungseinstellungen beschreibt.A configuration section that describes activation settings.
<TransportConfigurationTypes ><transportConfigurationTypes> Eine Auflistung der Konfigurationselemente, die den Typ eines bestimmten Transports identifizieren.A collection of configuration elements that identify the type of a particular transport.

Übergeordnete ElementeParent Elements

ElementElement BeschreibungDescription
serviceModelserviceModel Das Stammelement aller Windows Communication Foundation (WCF)-Konfigurationselemente.The root element of all Windows Communication Foundation (WCF) configuration elements.

HinweiseRemarks

WCF-Dienste werden in gehosteten Anwendungsdomänen (AppDomain) standardmäßig zusammen mit ASP.NET ausgeführt.By default, WCF services run side-by-side with ASP.NET in hosted Application Domains (AppDomain). 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.Even though WCF and ASP.NET can coexist in the same AppDomain, WCF requests are not processed by the ASP.NET HTTP Pipeline by default. Folglich stehen einige Elemente der ASP.NET-Anwendungsplattform nicht für WCF-Dienste zur Verfügung.As a result, several elements of the ASP.NET application platform are not available to WCF services. Dazu gehörenThese include

  • ASP.NET-Datei-/URL-AutorisierungASP.NET File/URL Authorization

  • ASP.NET-IdentitätswechselASP.NET Impersonation

  • Cookiebasierter SitzungszustandCookie-based Session State

  • HttpContext.CurrentHttpContext.Current

  • Pipeline-Erweiterbarkeit über benutzerdefiniertes HttpModulePipeline Extensibility via custom 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.If your WCF services need to function in the ASP.NET context, and communicate only over HTTP, you can use WCF’s ASP.NET compatibility mode. Dieser Modus wird aktiviert, wenn das aspNetCompatibilityEnabled-Attribut auf Anwendungsebene auf true festgelegt ist.This mode is turned on when the aspNetCompatibilityEnabled attribute is set to true at the application level. Die Dienstimplementierungen müssen die Möglichkeit, im Kompatibilitätsmodus ausgeführt zu werden, mit der AspNetCompatibilityRequirementsAttribute-Klasse deklarieren.Service implementations must declare their ability to run in compatibility mode using the AspNetCompatibilityRequirementsAttribute class. Wenn der Kompatibilitätsmodus aktiviert ist,When the compatibility mode is enabled,

  • wird vor der WCF-Autorisierung die ASP.NET-Datei-/URL-Autorisierung erzwungen.ASP.NET File/URL Authorization is enforced prior to WCF authorization. Eine Autorisierungsentscheidung basiert auf der Anforderungsidentität auf der Transportebene.An authorization decision is based on the transport-level identity of the request. Identitäten auf der Nachrichtenebene werden ignoriert.Identities at the message level are ignored.

  • beginnen die WCF-Dienstvorgänge mit der Ausführung im ASP.NET-Identitätswechselkontext.WCF service operations start to execute in the ASP.NET impersonation context. 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.If both ASP.NET impersonation and WCF impersonation are enabled for a specific service, the WCF impersonation context applies.

  • kann HttpContext.Current im WCF-Dienstcode verwendet werden. Die Dienste werden daran gehindert, Nicht-HTTP-Endpunkte verfügbar zu machen.HttpContext.Current can be used from WCF service code, and services are prevented from exposing non-HTTP endpoints.

  • werden die WCF-Anforderungen von der ASP.NET-Pipeline verarbeitet.WCF requests are processed by the ASP.NET pipeline. HttpModules, die für eingehende Anforderungen konfiguriert wurden, können ebenfalls WCF-Anforderungen verarbeiten.HttpModules that have been configured to act on incoming requests can also process WCF requests. Dazu gehören ASP.NET-Plattformkomponenten (z. B. SessionStateModule) sowie benutzerdefinierte Drittanbietermodule.These can include ASP.NET platform components (e.g., SessionStateModule), as well as custom third party modules.

BeispielExample

Das folgende Codebeispiel zeigt, wie der ASP-Kompatibilitätsmodus aktiviert wird.The following code sample shows how to enable ASP Compatibility Mode.

CodeCode

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>  

Siehe auchSee Also

ServiceHostingEnvironmentSection
ServiceHostingEnvironment
HostingHosting
WCF-Dienste und ASP.NETWCF Services and ASP.NET