WCF - Alojamiento propio

Aquí, el servicio WCF se hospeda en una aplicación de consola. A continuación se muestra el proceso con los pasos adecuados de manera secuencial que explica todo el proceso.

Step 1- Primero, creemos el contrato de servicio y su implementación. Cree una aplicación de consola y asígnele el nombre MyCalculatorService. Este es un servicio simple para devolver la suma de dos números.

Step 2- Ahora, haga clic derecho en Referencias en el Explorador de soluciones y haga clic en Agregar referencias. Se abre la siguiente ventana; agregue la referencia System.ServiceModel al proyecto.

Step 3- Cree una interfaz ISimpleCalculator, agregue el atributo ServiceContract y OperationContract a la clase y funcione como se muestra a continuación. Sabrá más sobre estos contratos en la sesión posterior. Estos contratos expondrán el método al mundo exterior para utilizar este servicio.

Step 4 - El código detrás de este archivo es el siguiente -

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace MyCalculatorWCFService {
   [ServiceContract()]
   Public interface ISimpleCalculator {
      [OperationContract()]
      int Add(int num1, int num2);
   }
}

Step 5 - MyCalculatorService es la clase de implementación para la interfaz IMyCalculatorService como se muestra a continuación.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyCalculatorWCFService {
   Class SimpleCalculator : ISimpleCalculator {
      Public int Add(int num1, int num2) {
         return num1 + num2;
      }
   }
}

Step 6- Ahora, estamos listos con el servicio. Vamos a implementar el proceso de alojamiento. Cree una nueva aplicación de consola y asígnele el nombre 'MyCalculatorWCFServiceHost'.

Step 7 - Agregue la referencia de system.servicemodel y el proyecto MyCalculatorWCFService.

El código detrás de esto es el siguiente:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyCalculatorWCFService;
using System.ServiceModel;
using System.ServiceModel.Description;

namespace MyCalculatorWCFServiceHost {
   class Program {
      static void Main(string[] args) {
         //Create a URI to serve as the base address
         UrihttpUrl = newUri("http://localhost:8090/MyCalculatorWCFService/SimpleCalculator");
         
         //Create ServiceHost
         ServiceHost host = newServiceHost(typeof(MyCalculatorWCFService.ISimpleCalculator), httpUrl);
         
         //Add a service endpoint
         host.AddServiceEndpoint(typeof(MyCalculatorWCFService.ISimpleCal culator), newWSHttpBinding(), "");
         
         //Enable metadata exchange
         ServiceMetadataBehaviorsmb = newServiceMetadataBehavior();
         smb.HttpGetEnabled = true;
         host.Description.Behaviors.Add(smb);

         //Start the Service
         host.Open();
         Console.WriteLine("Service is host at " + DateTime.Now.ToString());
         Console.WriteLine("Host is running... Press  key to stop");
         Console.ReadLine();
      }
   }
}