Udostępnij za pośrednictwem


Instrukcje: tworzenie punktu końcowego usługi w konfiguracji

Punkty końcowe zapewniają klientom dostęp do funkcji oferty usługi Windows Communication Foundation (WCF). Można zdefiniować jeden lub więcej punktów końcowych dla usługi przy użyciu kombinacji względnych i bezwzględnych adresów punktu końcowego lub jeśli nie zdefiniujesz żadnych punktów końcowych usługi, środowisko uruchomieniowe udostępnia niektóre domyślnie. W tym temacie przedstawiono sposób dodawania punktów końcowych przy użyciu pliku konfiguracji zawierającego zarówno adresy względne, jak i bezwzględne.

Przykład 1

Poniższa konfiguracja usługi określa adres podstawowy i pięć punktów końcowych.

<configuration>

  <appSettings>
    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddress" value="http://localhost:8000/servicemodelsamples/service" />
  </appSettings>

  <system.serviceModel>
    <services>
    <!-- This section is optional with the default configuration introduced in .NET Framework 4. -->
      <service name="Microsoft.ServiceModel.Samples.CalculatorService">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
          </baseAddresses>
        </host>
        <endpoint address=""
                  binding="wsHttpBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <endpoint address="/test"
                  binding="wsHttpBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <endpoint address="http://localhost:8001/hello/servicemodelsamples"
                  binding="wsHttpBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <endpoint address="net.tcp://localhost:9000/servicemodelsamples/service"
                  binding="netTcpBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <!-- the mex endpoint is another relative address exposed at
             http://localhost:8000/ServiceModelSamples/service/mex -->
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>

    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>

</configuration>

Przykład 2

Adres podstawowy jest określany przy użyciu add elementu w obszarze service/host/baseAddresses, jak pokazano w poniższym przykładzie.

<service
    name="Microsoft.ServiceModel.Samples.CalculatorService">
  <host>
    <baseAddresses>
      <add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
    </baseAddresses>
  </host>
</service>

Przykład 3

Pierwsza definicja punktu końcowego pokazana w poniższym przykładzie określa adres względny, co oznacza, że adres punktu końcowego jest kombinacją adresu podstawowego i adresu względnego zgodnie z regułami kompozycji identyfikatora URI ( Uniform Resource Identifier). Adres względny jest pusty (""), więc adres punktu końcowego jest taki sam jak adres podstawowy. Rzeczywisty adres punktu końcowego to http://localhost:8000/servicemodelsamples/service.

<endpoint address=""
    binding="wsHttpBinding"
    contract="Microsoft.ServiceModel.Samples.ICalculator" />

Przykład 4

Druga definicja punktu końcowego określa również adres względny, jak pokazano w poniższej przykładowej konfiguracji. Względny adres "test" jest dołączany do adresu podstawowego. Rzeczywisty adres punktu końcowego to http://localhost:8000/servicemodelsamples/service/test.

<endpoint address="/test"
    binding="wsHttpBinding"
    contract="Microsoft.ServiceModel.Samples.ICalculator" />

Przykład 5

Trzecia definicja punktu końcowego określa adres bezwzględny, jak pokazano w poniższej przykładowej konfiguracji. Adres podstawowy nie odgrywa żadnej roli w adresie. Rzeczywisty adres punktu końcowego to http://localhost:8001/hello/servicemodelsamples.

<endpoint address="http://localhost:8001/hello/servicemodelsamples"
    binding="wsHttpBinding"
    contract="Microsoft.ServiceModel.Samples.ICalculator" />

Przykład 6

Czwarty adres punktu końcowego określa adres bezwzględny i inny transport — TCP. Adres podstawowy nie odgrywa żadnej roli w adresie. Rzeczywisty adres punktu końcowego to net.tcp://localhost:9000/servicemodelsamples/service.

<endpoint address="net.tcp://localhost:9000/servicemodelsamples/service"
    binding="netTcpBinding"
    contract="Microsoft.ServiceModel.Samples.ICalculator" />

Przykład 7

Aby użyć domyślnych punktów końcowych udostępnianych przez środowisko uruchomieniowe, nie należy określać żadnych punktów końcowych usługi w kodzie lub pliku konfiguracji. W tym przykładzie środowisko uruchomieniowe tworzy domyślne punkty końcowe po otwarciu usługi. Aby uzyskać więcej informacji na temat domyślnych punktów końcowych, powiązań i zachowań, zobacz Uproszczone konfigurowanie i uproszczona konfiguracja usług WCF.

<configuration>

  <appSettings>
    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddress" value="http://localhost:8000/servicemodelsamples/service" />
  </appSettings>

  <system.serviceModel>
    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>

</configuration>