Vorgehensweise: Angeben einer Dienstbindung in einer KonfigurationHow to: Specify a Service Binding in Configuration

In diesem Beispiel wird ein ICalculator-Vertrag für einen grundlegenden Rechnerdienst definiert. Der Dienst wird in die CalculatorService-Klasse implementiert. Anschließend wird der Endpunkt in der Datei "Web.config" konfiguriert, in der angegeben wird, dass der Dienst die BasicHttpBinding verwendet.In this example, an ICalculator contract is defined for a basic calculator service, the service is implemented in the CalculatorService class, and then its endpoint is configured in the Web.config file, where it is specified that the service uses the BasicHttpBinding. Eine Beschreibung der diesen Dienst mithilfe von Code anstelle einer Konfigurations zu konfigurieren, finden Sie unter wie: Angeben einer Dienstbindung im Code.For a description of how to configure this service using code instead of a configuration, see How to: Specify a Service Binding in Code.

Normalerweise ist es die bewährte Methode, die Bindung anzugeben und die Informationen deklarativ in der Konfiguration anzusprechen anstatt imperativ im Code.It is usually the best practice to specify the binding and address information declaratively in configuration rather than imperatively in code. Die Definition von Endpunkten im Code ist normalerweise nicht geeignet, da die Bindungen und Adressen für einen bereitgestellten Dienst sich in der Regel von denen unterscheiden, die während der Entwicklung des Diensts verwendet werden.Defining endpoints in code is usually not practical because the bindings and addresses for a deployed service are typically different from those used while the service is being developed. Allgemeiner gesagt ist es durch die Trennung von Bindungs- und Adressierungsinformationen vom Code möglich, diese zu ändern, ohne die Anwendung neu kompilieren oder erneut bereitstellen zu müssen.More generally, keeping the binding and addressing information out of the code allows them to change without having to recompile or redeploy the application.

Alle der folgenden Konfigurationsschritte durchgeführt werden kann mithilfe der Dienstkonfigurations-Editor-Tool (SvcConfigEditor.exe).All of the following configuration steps can be undertaken using the Configuration Editor Tool (SvcConfigEditor.exe).

Eine Kopie der Quelle dieses Beispiels, finden Sie unter Standardbindung.For the source copy of this example, see BasicBinding.

So geben Sie die BasicHttpBinding zur Konfiguration des Dienstes anTo specify the BasicHttpBinding to use to configure the service

  1. Definieren Sie einen Dienstvertrag für den Diensttyp.Define a service contract for the type of service.

    [ServiceContract]
    public interface ICalculator
    {
       [OperationContract]
       double Add(double n1, double n2);
       [OperationContract]
       double Subtract(double n1, double n2);
       [OperationContract]
       double Multiply(double n1, double n2);
       [OperationContract]
       double Divide(double n1, double n2);
    }
    
    
      <ServiceContract()> _
    Public Interface ICalculator
          <OperationContract()> _
          Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
          <OperationContract()> _
          Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
          <OperationContract()> _
          Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
          <OperationContract()> _
          Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
      End Interface
    
    
  2. Implementieren Sie den Dienstvertrag in einer Dienstklasse.Implement the service contract in a service class.

    public class CalculatorService : ICalculator
    {
       public double Add(double n1, double n2)
       {
          return n1 + n2;
       }
       public double Subtract(double n1, double n2)
       {
          return n1 - n2;
       }
       public double Multiply(double n1, double n2)
       {
          return n1 * n2;
       }
       public double Divide(double n1, double n2)
       {
          return n1 / n2;
       }
    } 
    
    
    Public Class CalculatorService
        Implements ICalculator
        Public Function Add(ByVal n1 As Double, _
                            ByVal n2 As Double) As Double Implements ICalculator.Add
            Return n1 + n2
        End Function
        Public Function Subtract(ByVal n1 As Double, _
                                 ByVal n2 As Double) As Double Implements ICalculator.Subtract
            Return n1 - n2
        End Function
        Public Function Multiply(ByVal n1 As Double, _
                                 ByVal n2 As Double) As Double Implements ICalculator.Multiply
            Return n1 * n2
        End Function
        Public Function Divide(ByVal n1 As Double, _
                               ByVal n2 As Double) As Double Implements ICalculator.Divide
            Return n1 / n2
        End Function
    End Class
    
    

    Hinweis

    Die Adresse oder die Bindungsinformationen werden nicht in der Implementierung des Dienstes angegeben.Address or binding information is not specified inside the implementation of the service. Ebenso wenig muss Code geschrieben werden, um diese Informationen aus der Konfigurationsdatei abzurufen.Also, code does not have to be written to fetch that information from the configuration file.

  3. Erstellen Sie eine Web.config-Datei, um einen Endpunkt für den CalculatorService zu konfigurieren, der die WSHttpBinding verwendet.Create a Web.config file to configure an endpoint for the CalculatorService that uses the WSHttpBinding.

    <?xml version="1.0" encoding="utf-8" ?>  
    <configuration>  
      <system.serviceModel>  
        <services>  
          <service name=" CalculatorService" >  
            <endpoint   
            <-- Leave the address blank to be populated by default-->  
            <--from the hosting environment,in this case IIS, so -->  
            <-- the address will just be that of the IIS Virtual -->  
            <--Directory.-->  
                address=""   
            <--Specify the binding type -->  
                binding="wsHttpBinding"  
            <--Specify the binding configuration name for that -->  
            <--binding type. This is optional but useful if you  -->  
            <--want to modify the properties of the binding. -->  
            <--The bindingConfiguration name Binding1 is defined  -->  
            <--below in the bindings element.  -->  
                bindingConfiguration="Binding1"  
                contract="ICalculator" />  
          </service>  
        </services>  
        <bindings>  
          <wsHttpBinding>  
            <binding name="Binding1">  
              <-- Binding property values can be modified here. -->  
              <--See the next procedure. -->  
            </binding>  
          </wsHttpBinding>  
       </bindings>  
      </system.serviceModel>  
    </configuration>  
    
  4. Erstellen Sie eine Service.svc-Datei, die die folgende Zeile enthält, und platzieren Sie sie im virtuellen IIS-Verzeichnis.Create a Service.svc file that contains the following line and place it in your Internet Information Services (IIS) virtual directory.

    <%@ServiceHost language=c# Service="CalculatorService" %>   
    

So ändern Sie die Standardwerte für die BindungseigenschaftenTo modify the default values of the binding properties

  1. So ändern Sie eines der Standardeigenschaftswerte der WSHttpBinding, erstellen Sie einen neuen Namen der Bindung-Konfigurations - <binding name="Binding1"> – innerhalb der <WsHttpBinding > Element, und legen Sie die neuen Werte für die Attribute des der Binden in dieses Bindungselement.To modify one of the default property values of the WSHttpBinding, create a new binding configuration name - <binding name="Binding1"> - within the <wsHttpBinding> element and set the new values for the attributes of the binding in this binding element. Wenn Sie beispielsweise die standardmäßigen Timeoutwerte für das Öffnen und Schließen von 1 Minute in 2 Minuten ändern möchten, fügen Sie Folgendes der Konfigurationsdatei hinzu:For example, to change the default open and close timeout values of 1 minute to 2 minutes, add the following to the configuration file.

    <wsHttpBinding>  
      <binding name="Binding1"  
               closeTimeout="00:02:00"  
               openTimeout="00:02:00">  
      </binding>  
    </wsHttpBinding>  
    

Siehe auchSee Also

Verwenden von Bindungen, um Dienste und Clients zu konfigurierenUsing Bindings to Configure Services and Clients
Angeben einer EndpunktadresseSpecifying an Endpoint Address