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();
}
}
}