Crear un proyecto Clase de Librerías con el nombre MiServicioCalculadora Crear 2 clases: MiCalculadora e IMiCalculadora Agregar la referencia System.ServiceModel En clase MiCalculadora, agregar el siguiente código: http://yolopuedohacer.blogspot.com/ 1 namespace MiServicioCalculadora { public class MiCalculadora : IMiCalculadora { public int Add(int Num1, int Num2) { return Num1 + Num2; } } } En clase IMiCalculadora, agregar el siguiente código: namespace MiServicioCalculadora { [ServiceContract] public interface IMiCalculadora { [OperationContract] int Add(int Num1, int Num2); } } Crear un proyecto consola con el nombre MiServicioHost http://yolopuedohacer.blogspot.com/ 2 Agregamos la referencia del proyecto ya creado (MiServicioCalculadora) Creamos una clase con el nombre MiProxy.cs http://yolopuedohacer.blogspot.com/ 3 using System.ServiceModel; using System.ServiceModel.Channels; using MiServicioCalculadora; namespace MiServicioProxy { public class MiServicioProxy: ClientBase<IMiCalculadora>, IMiCalculadora { public int Add(int num1, int num2) { return base.Channel.Add(num1, num2); } } } En la clase Program.cs, agregamos el siguiente código: http://yolopuedohacer.blogspot.com/ 4 using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Description; namespace MiServicioHost { class Program { static void Main(string[] args) { Uri httpUrl = new Uri("http://localhost:8090/MiServicio/MiCalculadora"); Uri tcpurl = new Uri("http://localhost:8090/MiServicio/MiCalculadora"); ServiceHost Host = new ServiceHost(typeof(MiServicioCalculadora.MiCalculadora), httpUrl); Host.AddServiceEndpoint(typeof(MiServicioCalculadora.IMiCalculadora), new WS2007HttpBinding(), ""); //Habilitamos el intercambio de Metadatos ServiceMetadataBehavior SMB = new ServiceMetadataBehavior(); SMB.HttpGetEnabled = true; Host.Description.Behaviors.Add(SMB); Binding mexBinding = MetadataExchangeBindings.CreateMexHttpBinding(); Host.AddServiceEndpoint(typeof(IMetadataExchange), mexBinding, "mex"); Host.Open(); http://yolopuedohacer.blogspot.com/ 5 Console.WriteLine("=================================================== ==================="); Console.WriteLine("El servicio se inicio: " + DateTime.Now.ToString()); Console.WriteLine(); Console.WriteLine("*** *** El receptor esta listo ... *** *** "); Console.WriteLine(); Console.WriteLine("El host se ha iniciado .... Presione <Enter> para detener el servicio"); Console.WriteLine("=================================================== ==================="); Console.ReadLine(); } } } Para iniciar el servicio por medio de nuestro proxy apretamos F5 http://yolopuedohacer.blogspot.com/ 6