<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"/>

Zobacz też