<serviceHostingEnvironment>
Tento element definuje typ, který prostředí hostování služby vytvoří instanci pro konkrétní přenos. Pokud je tento prvek prázdný, použije se výchozí typ. Tento prvek lze použít pouze v konfiguračních souborech na úrovni aplikace nebo počítače.
<Konfigurace>
<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>
Atributy a elementy
Následující části popisují atributy, podřízené prvky a nadřazené prvky.
Atributy
Atribut | Popis |
---|---|
aspNetCompatibilityEnabled | Logická hodnota označující, jestli je pro aktuální aplikaci zapnutý režim kompatibility ASP.NET. Výchozí formát je false .Pokud je tento atribut nastaven na true , požadavky na služby Windows Communication Foundation (WCF) procházejí kanálem ASP.NET HTTP a komunikace přes protokoly jiné než HTTP je zakázána. Další informace najdete v tématu Služby WCF a ASP.NET. |
minFreeMemoryPercentageToActivateService | Celé číslo, které určuje minimální množství volné paměti, která by měla být k dispozici systému před aktivací služby WCF. Pozor: Zadání tohoto atributu spolu s částečnou důvěryhodností v souboru web.config služby WCF bude mít za následek SecurityException spuštění služby. |
multipleSiteBindingsEnabled | Logická hodnota, která určuje, zda je povoleno více vazeb služby IIS na lokalitu. Služba IIS se skládá z webů, což jsou kontejnery pro virtuální aplikace obsahující virtuální adresáře. Aplikace na webu je přístupná prostřednictvím jedné nebo více vazeb služby IIS. Vazba služby IIS poskytuje dvě informace: protokol vazby a informace o vazbě. Protokol vazby definuje schéma, přes které probíhá komunikace, a informace o vazbě jsou informace používané pro přístup k webu. Příkladem protokolu vazby může být HTTP, zatímco informace o vazbě můžou obsahovat IP adresu, port, hlavičku hostitele atd. Služba IIS podporuje zadání více vazeb služby IIS na lokalitu, což vede k více základním adresám na jedno schéma. Služba Windows Communication Foundation (WCF) hostovaná na webu však umožňuje vazbu pouze na jednu základní adresu na schéma. Pokud chcete povolit více vazeb služby IIS na lokalitu pro službu Windows Communication Foundation (WCF), nastavte tento atribut na true . Všimněte si, že více vazeb webů je podporováno pouze pro protokol HTTP. Adresa koncových bodů v konfiguračním souboru musí být úplný identifikátor URI. |
Podřízené elementy
Element | Popis |
---|---|
<baseAddressPrefixFilters> | Kolekce konfiguračních prvků, které určují filtry předpon pro základní adresy používané hostitelem služby. |
<serviceActivations> | Oddíl konfigurace, který popisuje nastavení aktivace. |
<transportConfigurationTypes> | Kolekce konfiguračních prvků, které identifikují typ konkrétního přenosu. |
Nadřazené elementy
Element | Popis |
---|---|
Servicemodel | Kořenový prvek všech konfiguračních elementů wcf (Windows Communication Foundation). |
Poznámky
Ve výchozím nastavení se služby WCF spouští souběžně s ASP.NET v hostovaných doménách aplikací (AppDomain). I když WCF a ASP.NET mohou existovat společně ve stejné doméně AppDomain, požadavky WCF nejsou ve výchozím nastavení zpracovávány ASP.NET kanálEM HTTP. V důsledku toho není pro služby WCF k dispozici několik prvků platformy ASP.NET aplikací. Ty zahrnují:
Autorizace ASP.NET souborů nebo adres URL
Zosobnění technologie ASP.NET
Stav relace na základě souborů cookie
HttpContext.Current
Rozšiřitelnost kanálu prostřednictvím vlastního modulu HttpModule
Pokud vaše služby WCF potřebují fungovat v kontextu ASP.NET a komunikovat pouze přes PROTOKOL HTTP, můžete použít ASP.NET režim kompatibility WCF. Tento režim se zapne, aspNetCompatibilityEnabled
když je atribut nastavený na true
úrovni aplikace. Implementace služby musí deklarovat svou schopnost spouštět v režimu kompatibility AspNetCompatibilityRequirementsAttribute pomocí třídy . Pokud je režim kompatibility povolený,
ASP.NET Autorizace souborů nebo adres URL se vynucuje před autorizací WCF. Rozhodnutí o autorizaci je založeno na identitě požadavku na úrovni přenosu. Identity na úrovni zprávy se ignorují.
Operace služby WCF se spustí v kontextu ASP.NET zosobnění. Pokud jsou pro konkrétní službu povolené zosobnění ASP.NET i zosobnění WCF, použije se kontext zosobnění WCF.
HttpContext.Current lze použít z kódu služby WCF a službám je zabráněno v vystavení koncových bodů, které nejsou http.
Požadavky WCF zpracovává kanál ASP.NET. Moduly HttpModules, které byly nakonfigurovány pro práci s příchozími požadavky, mohou také zpracovávat požadavky WCF. Může se jednat o ASP.NET komponenty platformy (např. SessionStateModule) a také vlastní moduly třetích stran.
Příklad
Následující ukázka kódu ukazuje, jak povolit režim kompatibility ASP.
Kód
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>