Dela via


<serviceHostingEnvironment>

Det här elementet definierar typen som tjänstvärdmiljön instansierar för en viss transport. Om det här elementet är tomt används standardtypen. Det här elementet kan bara användas i konfigurationsfilerna på program- eller datornivå.

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

Attribut och element

I följande avsnitt beskrivs attribut, underordnade element och överordnade element.

Attribut

Attribut Beskrivning
aspNetCompatibilityEnabled Ett booleskt värde som anger om ASP.NET kompatibilitetsläge har aktiverats för det aktuella programmet. Standardvärdet är false.

När det här attributet är inställt på trueflödar begäranden till WCF-tjänster (Windows Communication Foundation) via ASP.NET HTTP-pipeline och kommunikation över icke-HTTP-protokoll är förbjuden. Mer information finns i WCF-tjänster och ASP.NET.
minFreeMemoryPercentageToActivateService Ett heltal som anger den minsta mängd ledigt minne som ska vara tillgängligt för systemet innan en WCF-tjänst kan aktiveras. Försiktighet: Om du anger det här attributet tillsammans med partiellt förtroende i web.config-filen för en WCF-tjänst resulterar det i en SecurityException när tjänsten körs.
multipleSiteBindingsEnabled Ett booleskt värde som anger om flera IIS-bindningar per plats är aktiverade.

IIS består av webbplatser som är containrar för virtuella program som innehåller virtuella kataloger. Programmet på en webbplats kan nås via en eller flera IIS-bindningar. En IIS-bindning innehåller två typer av information: ett bindningsprotokoll och bindningsinformation. Bindningsprotokollet definierar schemat över vilket kommunikation sker, och bindningsinformation är den information som används för att komma åt webbplatsen. Ett exempel på ett bindningsprotokoll kan vara HTTP, medan bindningsinformation kan innehålla en IP-adress, port, värdhuvud osv.

IIS har stöd för att ange flera IIS-bindningar per plats, vilket resulterar i flera basadresser per schema. Men en WCF-tjänst (Windows Communication Foundation) som finns på en plats tillåter bindning till endast en baseAddress per schema.

Om du vill aktivera flera IIS-bindningar per plats för en WCF-tjänst (Windows Communication Foundation) anger du det här attributet till true. Observera att flera platsbindningar endast stöds för HTTP-protokollet. Adressen för slutpunkter i konfigurationsfilen måste vara en fullständig URI.

Underordnade element

Element Beskrivning
<baseAddressPrefixFilters> En samling konfigurationselement som anger prefixfilter för de basadresser som används av tjänstvärden.
<serviceActivations> Ett konfigurationsavsnitt som beskriver aktiveringsinställningar.
<transportConfigurationTypes> En samling konfigurationselement som identifierar typen av en viss transport.

Överordnade element

Element Beskrivning
serviceModel Rotelementet i alla WCF-konfigurationselement (Windows Communication Foundation).

Kommentarer

Som standard körs WCF-tjänster sida vid sida med ASP.NET i värdbaserade programdomäner (AppDomain). Även om WCF och ASP.NET kan samexistera i samma AppDomain bearbetas inte WCF-begäranden av ASP.NET HTTP-pipeline som standard. Därför är flera element i ASP.NET programplattform inte tillgängliga för WCF-tjänster. Exempel på dessa är

  • ASP.NET-fil/URL-auktorisering

  • ASP.NET-personifiering

  • Cookiebaserat sessionstillstånd

  • HttpContext.Current

  • Utökningsbarhet för pipeline via anpassad HttpModule

Om dina WCF-tjänster behöver fungera i ASP.NET kontext och endast kommunicera via HTTP kan du använda WCF:s ASP.NET kompatibilitetsläge. Det här läget aktiveras när aspNetCompatibilityEnabled attributet är inställt true på på programnivå. Tjänstimplementeringar måste deklarera sin möjlighet att köras i kompatibilitetsläge med hjälp av AspNetCompatibilityRequirementsAttribute klassen . När kompatibilitetsläget är aktiverat

  • ASP.NET Fil-/URL-auktorisering framtvingas före WCF-auktorisering. Ett auktoriseringsbeslut baseras på begärans identitet på transportnivå. Identiteter på meddelandenivå ignoreras.

  • WCF-tjänståtgärder börjar köras i ASP.NET personifieringskontext. Om både ASP.NET personifiering och WCF-personifiering är aktiverade för en specifik tjänst gäller WCF-personifieringskontexten.

  • HttpContext.Current kan användas från WCF-tjänstkod och tjänster hindras från att exponera icke-HTTP-slutpunkter.

  • WCF-begäranden bearbetas av ASP.NET pipeline. HttpModules som har konfigurerats för att agera på inkommande begäranden kan också bearbeta WCF-begäranden. Dessa kan omfatta ASP.NET plattformskomponenter (t.ex. SessionStateModule), samt anpassade moduler från tredje part.

Exempel

Följande kodexempel visar hur du aktiverar ASP-kompatibilitetsläge.

Kod

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

Se även