<serviceHostingEnvironment>
Ten element definiuje typ wystąpienia środowiska hostingu usług dla określonego transportu. Jeśli ten element jest pusty, używany jest typ domyślny. Ten element może być używany tylko w plikach konfiguracji na poziomie aplikacji lub maszyny.
<Konfiguracji>
<System.servicemodel>
<serviceHostingEnvironment>
Składnia
<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>
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.
Atrybuty
Atrybut | Opis |
---|---|
Aspnetcompatibilityenabled | Wartość logiczna wskazująca, czy tryb zgodności ASP.NET został włączony dla bieżącej aplikacji. Wartość domyślna to false .Jeśli ten atrybut ma wartość true , żądania usług Windows Communication Foundation (WCF) przepływają przez potok HTTP ASP.NET, a komunikacja za pośrednictwem protokołów innych niż HTTP jest zabroniona. Aby uzyskać więcej informacji, zobacz Usługi WCF i ASP.NET. |
minFreeMemoryPercentageToActivateService | Liczba całkowita określająca minimalną ilość wolnej pamięci, która powinna być dostępna dla systemu, zanim będzie można aktywować usługę WCF. Ostrożność: Określenie tego atrybutu wraz z częściowym zaufaniem SecurityException w pliku web.config usługi WCF spowoduje wystąpienie błędu po uruchomieniu usługi. |
multipleSiteBindingsEnabled | Wartość logiczna określająca, czy włączono wiele powiązań usług IIS na lokację. Usługi IIS składają się z witryn internetowych, które są kontenerami dla aplikacji wirtualnych zawierających katalogi wirtualne. Dostęp do aplikacji w lokacji można uzyskać za pośrednictwem co najmniej jednego powiązania usług IIS. Powiązanie usług IIS zawiera dwie informacje: protokół powiązania i informacje o powiązaniu. Protokół powiązania definiuje schemat, w którym odbywa się komunikacja, a informacje o powiązaniu są informacjami używanymi do uzyskiwania dostępu do witryny. Przykładem protokołu powiązania może być protokół HTTP, natomiast informacje o powiązaniu mogą zawierać adres IP, port, nagłówek hosta itp. Usługi IIS obsługują określanie wielu powiązań usług IIS na lokację, co powoduje wyświetlenie wielu adresów bazowych na schemat. Jednak usługa Windows Communication Foundation (WCF) hostowana w lokacji umożliwia powiązanie tylko z jedną baząAddress na schemat. Aby włączyć wiele powiązań usług IIS na lokację dla usługi Windows Communication Foundation (WCF), ustaw ten atrybut na true . Zwróć uwagę, że wiele powiązań lokacji jest obsługiwanych tylko dla protokołu HTTP. Adres punktów końcowych w pliku konfiguracji musi być kompletnym identyfikatorem URI. |
Elementy podrzędne
Element | Opis |
---|---|
<baseAddressPrefixFilters> | Kolekcja elementów konfiguracji, które określają filtry prefiksów dla adresów bazowych używanych przez hosta usługi. |
<serviceActivations> | Sekcja konfiguracji opisując ustawienia aktywacji. |
<transportConfigurationTypes> | Kolekcja elementów konfiguracji identyfikujących typ określonego transportu. |
Elementy nadrzędne
Element | Opis |
---|---|
Servicemodel | Element główny wszystkich elementów konfiguracji programu Windows Communication Foundation (WCF). |
Uwagi
Domyślnie usługi WCF działają obok siebie z ASP.NET w hostowanych domenach aplikacji (AppDomain). Mimo że usługi WCF i ASP.NET mogą współistnieć w tej samej domenie aplikacji, żądania WCF nie są domyślnie przetwarzane przez potok http ASP.NET. W związku z tym kilka elementów platformy aplikacji ASP.NET nie jest dostępnych dla usług WCF. Należą do nich
autoryzacja pliku/adresu URL ASP.NET
Personifikacja w programie ASP.NET
Stan sesji opartej na plikach cookie
HttpContext.Current
Rozszerzalność potoku za pośrednictwem niestandardowego modułu HttpModule
Jeśli usługi WCF muszą działać w kontekście ASP.NET i komunikować się tylko za pośrednictwem protokołu HTTP, możesz użyć trybu zgodności ASP.NET WCF. Ten tryb jest włączony, gdy aspNetCompatibilityEnabled
atrybut jest ustawiony na true
poziomie aplikacji. Implementacje usług muszą zadeklarować możliwość uruchamiania w trybie zgodności przy użyciu AspNetCompatibilityRequirementsAttribute klasy . Po włączeniu trybu zgodności
ASP.NET autoryzacja pliku/adresu URL jest wymuszana przed autoryzacją WCF. Decyzja o autoryzacji jest oparta na tożsamości na poziomie transportu żądania. Tożsamości na poziomie komunikatu są ignorowane.
Operacje usługi WCF zaczynają być wykonywane w kontekście personifikacji ASP.NET. Jeśli dla określonej usługi włączono personifikację ASP.NET i personifikację WCF, kontekst personifikacji WCF ma zastosowanie.
HttpContext.Current może być używany z kodu usługi WCF, a usługi nie mogą ujawniać punktów końcowych innych niż HTTP.
Żądania WCF są przetwarzane przez potok ASP.NET. Moduły HttpModules skonfigurowane do wykonywania działań na żądaniach przychodzących mogą również przetwarzać żądania WCF. Mogą one obejmować składniki platformy ASP.NET (np SessionStateModule. ), a także niestandardowe moduły innych firm.
Przykład
Poniższy przykładowy kod pokazuje, jak włączyć tryb zgodności platformy ASP.
Kod
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>