Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Gewusst wie: Erstellen eines Dienstendpunkts im Code

In diesem Beispiel wird ein ICalculator-Vertrag für einen Rechnerdienst definiert, der Dienst wird in der CalculatorService-Klasse implementiert und der Endpunkt wird im Code definiert. Dort ist angegeben, dass die BasicHttpBinding-Klasse vom Dienst verwendet werden muss.

Normalerweise ist es die bewährte Methode, die Bindung anzugeben und die Informationen deklarativ in der Konfiguration anzusprechen anstatt imperativ im Code. Die Definition von Endpunkten im Code ist normalerweise nicht geeignet, da sich die Bindungen und die Adressen eines bereitgestellten Dienstes normalerweise von denen unterscheiden, die während der Entwicklung des Dienstes verwendet wurden. Allgemeiner gesagt ermöglicht das Ausschließen der Bindung und der Adressierungsinformationen aus dem Code ihre Änderung, ohne die Anwendung neu kompilieren oder erneut bereitstellen zu müssen.

So erstellen Sie einen Dienstendpunkt im Code

  1. Erstellen Sie die Schnittstelle, die den Dienstvertrag definiert.

    
      [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);
      }
    
    
    
    
  2. Implementieren Sie den in Schritt 1 definierten Dienstvertrag.

    
      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;
         }
      } 
    
    
    
    
  3. Erstellen Sie in der Hostanwendung eine Basisadresse für den Dienst und die Bindung, die für den Dienst verwendet werden soll.

    
    
    // Specify a base address for the service
    
    String baseAddress = "http://localhost/CalculatorService";
    // Create the binding to be used by the service.
    
    BasicHttpBinding binding1 = new BasicHttpBinding();
    
    
    
  4. Erstellen Sie den Host, und rufen Sie AddServiceEndpoint(Type, Binding, String) oder eine der anderen Überladungen auf, um den Dienstendpunkt dem Host hinzuzufügen.

    
    
                using(ServiceHost host = new ServiceHost(typeof(CalculatorService)))
                {
                    host.AddServiceEndpoint(typeof(ICalculator),binding1, baseAddress);
    
    
    
    

    Übergeben Sie beim Erstellen des ServiceHost die Basisadresse an den Konstruktor, und rufen Sie nicht AddServiceEndpoint auf, um die Bindung im Code anzugeben, aber dabei die Standardendpunkte der Runtime zu verwenden.

    
    ServiceHost host = new ServiceHost(typeof(CalculatorService), new Uri(baseAddress));
    
    
    

    Weitere Informationen finden Sie unter zu Standardendpunkten finden Sie unter Vereinfachte Konfiguration und Vereinfachte Konfiguration für WCF-Dienste.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft