<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å true flö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"/>