Gewusst wie: Erstellen eines Dienstendpunkts in einer KonfigurationHow to: Create a Service Endpoint in Configuration

Endpunkte ermöglichen Clients den Zugriff auf die Funktionalität, die ein Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)-Dienst bereitstellt.Endpoints provide clients with access to the functionality a Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) service offers. Sie können einen oder mehrere Endpunkte mit einer Kombination relativer und absoluter Endpunktadressen für den Dienst definieren. Wenn Sie keine Dienstendpunkte definieren, stellt die Runtime standardmäßig einige Endpunkte bereit.You can define one or more endpoints for a service by using a combination of relative and absolute endpoint addresses, or if you do not define any service endpoints, the runtime provides some by default for you. In diesem Thema wird beschrieben, wie Endpunkte, die sowohl relative als auch absolute Adressen enthalten, mit einer Konfigurationsdatei hinzugefügt werden.This topic shows how to add endpoints using a configuration file that contain both relative and absolute addresses.

BeispielExample

Die folgende Dienstkonfiguration gibt eine Basisadresse und fünf Endpunkte an.The following service configuration specifies a base address and five endpoints.

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

BeispielExample

Die Basisadresse wird mit dem add-Element unter "Dienst/Host/baseAddresses" angegeben, wie im folgenden Beispiel dargestellt.The base address is specified using the add element, under service/host/baseAddresses, as shown in the following sample.

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

BeispielExample

Die erste Endpunktdefinition, die im folgenden Beispiel gezeigt wird, gibt eine relative Adresse an. Dies bedeutet, dass die Endpunktadresse eine Kombination aus der Basisadresse und der relativen Adresse nach den Regelen der Uniform Resource Identifier (URI)-Zusammensetzung ist.The first endpoint definition shown in the following sample specifies a relative address, which means the endpoint address is a combination of the base address and the relative address following the rules of Uniform Resource Identifier (URI) composition. Die relative Adresse ist leer (""), folglich ist die Endpunktadresse gleich der Basisadresse.The relative address is empty (""), so the endpoint address is the same as the base address. Die tatsächliche Endpunktadresse lautet http://localhost:8000/servicemodelsamples/service.The actual endpoint address is http://localhost:8000/servicemodelsamples/service.

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

BeispielExample

Die zweite Endpunktdefinition gibt ebenfalls eine relative Adresse an, wie in der folgenden Beispielkonfiguration dargestellt.The second endpoint definition also specifies a relative address, as shown in the following sample configuration. Die relative Adresse "test" ist an die Basisadresse angefügt.The relative address, "test", is appended to the base address. Die tatsächliche Endpunktadresse lautet http://localhost:8000/servicemodelsamples/service/test.The actual endpoint address is http://localhost:8000/servicemodelsamples/service/test.

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

BeispielExample

Die dritte Endpunktdefinition gibt eine absolute Adresse an, wie in der folgenden Beispielkonfiguration dargestellt.The third endpoint definition specifies an absolute address, as shown in the following sample configuration. Die Basisadresse spielt bei der Adresse keine Rolle.The base address plays no role in the address. Die tatsächliche Endpunktadresse lautet http://localhost:8001/hello/servicemodelsamples.The actual endpoint address is http://localhost:8001/hello/servicemodelsamples.

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

BeispielExample

Die vierte Endpunktadresse gibt eine absolute Adresse und einen anderen Transport an, nämlich TCP.The fourth endpoint address specifies an absolute address and a different transport—TCP. Die Basisadresse spielt bei der Adresse keine Rolle.The base address plays no role in the address. Die tatsächliche Endpunktadresse lautet net.tcp://localhost:9000/servicemodelsamples/service.The actual endpoint address is net.tcp://localhost:9000/servicemodelsamples/service.

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

BeispielExample

Um die von der Runtime bereitgestellten Standardendpunkte zu verwenden, geben Sie weder im Code noch in der Konfigurationsdatei Dienstendpunkte an.To use the default endpoints provided by the runtime, do not specify any service endpoints in either the code or the configuration file. In diesem Beispiel erstellt die Laufzeit die Standardendpunkte, wenn der Dienst geöffnet wird.In this example, the runtime creates the default endpoints when the service is opened. Weitere Informationen zu Standardendpunkten, Bindungen und Verhaltensweisen finden Sie unter vereinfachte Konfiguration und vereinfachte Konfiguration für WCF-Dienste.For more information about default endpoints, bindings, and behaviors, see Simplified Configuration and Simplified Configuration for WCF Services.

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