Dela via


Anvisningar: Skapa en tjänstslutpunkt i konfigurationen

Slutpunkter ger klienter åtkomst till funktionerna som en WCF-tjänst (Windows Communication Foundation) erbjuder. Du kan definiera en eller flera slutpunkter för en tjänst med hjälp av en kombination av relativa och absoluta slutpunktsadresser, eller om du inte definierar några tjänstslutpunkter tillhandahåller körningen vissa som standard för dig. Det här avsnittet visar hur du lägger till slutpunkter med hjälp av en konfigurationsfil som innehåller både relativa och absoluta adresser.

Exempel 1

Följande tjänstkonfiguration anger en basadress och fem slutpunkter.

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

Exempel 2

Basadressen anges med hjälp av elementet add under tjänst/värd/baseAddresses, enligt följande exempel.

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

Exempel 3

Den första slutpunktsdefinitionen som visas i följande exempel anger en relativ adress, vilket innebär att slutpunktsadressen är en kombination av basadressen och den relativa adressen enligt reglerna för URI-sammansättning (Uniform Resource Identifier). Den relativa adressen är tom (""), så slutpunktsadressen är samma som basadressen. Den faktiska slutpunktsadressen är http://localhost:8000/servicemodelsamples/service.

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

Exempel 4

Den andra slutpunktsdefinitionen anger också en relativ adress, enligt följande exempelkonfiguration. Den relativa adressen , "test", läggs till i basadressen. Den faktiska slutpunktsadressen är http://localhost:8000/servicemodelsamples/service/test.

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

Exempel 5

Den tredje slutpunktsdefinitionen anger en absolut adress, enligt följande exempelkonfiguration. Basadressen spelar ingen roll i adressen. Den faktiska slutpunktsadressen är http://localhost:8001/hello/servicemodelsamples.

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

Exempel 6

Den fjärde slutpunktsadressen anger en absolut adress och en annan transport – TCP. Basadressen spelar ingen roll i adressen. Den faktiska slutpunktsadressen är net.tcp://localhost:9000/servicemodelsamples/service.

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

Exempel 7

Om du vill använda standardslutpunkterna som tillhandahålls av körningen ska du inte ange några tjänstslutpunkter i vare sig koden eller konfigurationsfilen. I det här exemplet skapar körningen standardslutpunkterna när tjänsten öppnas. Mer information om standardslutpunkter, bindningar och beteenden finns i Förenklad konfiguration och förenklad konfiguration för WCF-tjänster.

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