Delen via


<serviceHostingEnvironment>

Dit element definieert het type dat door de servicehostingomgeving wordt geïnstitueert voor een bepaald transport. Als dit element leeg is, wordt het standaardtype gebruikt. Dit element kan alleen worden gebruikt op configuratiebestanden op toepassings- of computerniveau.

<configuratie>
  <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>

Kenmerken en elementen

In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven.

Kenmerken

Kenmerk Beschrijving
aspNetCompatibilityEnabled Een Booleaanse waarde die aangeeft of de ASP.NET compatibiliteitsmodus is ingeschakeld voor de huidige toepassing. De standaardwaarde is false.

Wanneer dit kenmerk is ingesteld op true, stromen aanvragen voor WCF-services (Windows Communication Foundation) via de ASP.NET HTTP-pijplijn en is communicatie via niet-HTTP-protocollen verboden. Zie WCF-services en ASP.NET voor meer informatie.
minFreeMemoryPercentageToActivateService Een geheel getal dat de minimale hoeveelheid vrij geheugen aangeeft die beschikbaar moet zijn voor het systeem, voordat een WCF-service kan worden geactiveerd. Voorzichtigheid: Als u dit kenmerk opgeeft, samen met een gedeeltelijke vertrouwensrelatie in het web.config-bestand van een WCF-service, resulteert dit in een SecurityException wanneer de service wordt uitgevoerd.
multipleSiteBindingsEnabled Een Booleaanse waarde die aangeeft of meerdere IIS-bindingen per site zijn ingeschakeld.

IIS bestaat uit websites. Dit zijn containers voor virtuele toepassingen die virtuele mappen bevatten. De toepassing in een site kan worden geopend via een of meer IIS-bindingen. Een IIS-binding biedt twee soorten informatie: een bindingsprotocol en bindingsgegevens. Het bindingsprotocol definieert het schema waarover communicatie plaatsvindt en bindingsinformatie is de informatie die wordt gebruikt voor toegang tot de site. Een voorbeeld van een bindingsprotocol kan HTTP zijn, terwijl bindingsgegevens een IP-adres, poort, hostheader, enzovoort kunnen bevatten.

IIS ondersteunt het opgeven van meerdere IIS-bindingen per site, wat resulteert in meerdere basisadressen per schema. Een WCF-service (Windows Communication Foundation) die wordt gehost onder een site, staat echter binding toe aan slechts één baseAddress per schema.

Als u meerdere IIS-bindingen per site wilt inschakelen voor een WCF-service (Windows Communication Foundation), stelt u dit kenmerk in op true. U ziet dat meerdere sitebindingen alleen worden ondersteund voor het HTTP-protocol. Het adres van eindpunten in het configuratiebestand moet een volledige URI zijn.

Onderliggende elementen

Element Beschrijving
<baseAddressPrefixFilters> Een verzameling configuratie-elementen waarmee voorvoegselfilters worden opgegeven voor de basisadressen die door de servicehost worden gebruikt.
<serviceActivations> Een configuratiesectie waarin activeringsinstellingen worden beschreven.
<transportConfigurationTypes> Een verzameling configuratie-elementen die het type van een bepaald transport identificeren.

Bovenliggende elementen

Element Beschrijving
serviceModel Het hoofdelement van alle WCF-configuratie-elementen (Windows Communication Foundation).

Opmerkingen

WCF-services worden standaard naast ASP.NET uitgevoerd in gehoste toepassingsdomeinen (AppDomain). Hoewel WCF en ASP.NET naast elkaar kunnen bestaan in hetzelfde AppDomain, worden WCF-aanvragen niet standaard verwerkt door de ASP.NET HTTP-pijplijn. Als gevolg hiervan zijn verschillende elementen van het ASP.NET-toepassingsplatform niet beschikbaar voor WCF-services. Deze omvatten

  • ASP.NET-bestand/URL-autorisatie

  • ASP.NET-imitatie

  • Sessiestatus op basis van cookies

  • HttpContext.Current

  • Uitbreidbaarheid van pijplijnen via aangepaste HttpModule

Als uw WCF-services in de ASP.NET context moeten werken en alleen via HTTP moeten communiceren, kunt u de ASP.NET compatibiliteitsmodus van WCF gebruiken. Deze modus wordt ingeschakeld wanneer het aspNetCompatibilityEnabled kenmerk is ingesteld true op op toepassingsniveau. Service-implementaties moeten aangeven dat ze kunnen worden uitgevoerd in de compatibiliteitsmodus met behulp van de AspNetCompatibilityRequirementsAttribute -klasse. Wanneer de compatibiliteitsmodus is ingeschakeld,

  • ASP.NET bestands-/URL-autorisatie wordt afgedwongen vóór WCF-autorisatie. Een autorisatiebeslissing is gebaseerd op de identiteit op transportniveau van de aanvraag. Identiteiten op berichtniveau worden genegeerd.

  • WCF-servicebewerkingen worden uitgevoerd in de ASP.NET imitatiecontext. Als zowel ASP.NET-imitatie als WCF-imitatie zijn ingeschakeld voor een specifieke service, is de WCF-imitatiecontext van toepassing.

  • HttpContext.Current kan worden gebruikt vanuit WCF-servicecode en services worden voorkomen dat niet-HTTP-eindpunten worden weergegeven.

  • WCF-aanvragen worden verwerkt door de ASP.NET-pijplijn. HttpModules die zijn geconfigureerd om te reageren op binnenkomende aanvragen kunnen ook WCF-aanvragen verwerken. Deze kunnen bestaan uit ASP.NET platformonderdelen (bijvoorbeeld SessionStateModule), evenals aangepaste modules van derden.

Voorbeeld

In het volgende codevoorbeeld ziet u hoe u de ASP-compatibiliteitsmodus inschakelt.

Code

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

Zie ook