HOST WCF EN AZURE CON WEB ROLE Y CONSUMO
Hola! Hoy vamos a realizar una aplicación en la que alojaremos un Web Service WCF dentro de Azure luego mostraremos el consumo del servicio desde una aplicación MVC.
Pero antes de realizar el consumo e incluso de hacer la web Service wcf debemos tener la seguridad de contar con un espacio de almacenamiento en Azure.
Recordemos conceptos…
¿Que es Azure?
Azure nos brinda 3 roles para el desarrollo de aplicaciones:
Es un role de Windows Azure en donde se implementan aplicaciones como ya comente puede ser una aplicación dee ASP.NET, ASP.NET MVC, Windows Comunication Foundation, etc además puede ser un sitio web desarrollado en Node.js, Java, PHP y etc.
Visual Studio brinda 3 plantillas para Web Roles cuando creamos un proyecto Cloud: ASP.NET, ASP.NET MVC3, MVC2, Silverlight Bussiness Aplication y WCF Service.
Azure Cloud Service en Azure
1.- Crearemos un proyecto nuevo el cual llamaremos PruebaCloud
2. Luego seleccionamos WCF Service Web Role
3. Una vez creado el proyecto, observaremos que se han creado dos archivos:
– PruebaCloud
– WCFServiceWebRole1
4.- PruebaCloud es un proyecto Web Role para alojar las comunicaciones y WF ServiceWebRole1 sera el propio WCF.
5. En el proyecto WCFServiceWebRole1 agregamos un nuevo WCF Service llamado ServicioNumerosAleatoriosPrueba.
6. Veremos que se crearan 2 archivo IServicioNumerosAleatoriosPrueba y la clase ServicioNumerosAleatoriosPrueba
7.- En la Interface
Esta será el contrato del servicio.
En cuanto se crea el WCF se agregaran 2 archivos, uno será la interfaz o interface que especifica la colección y estructura de mensajes requeridos para obtener acceso a las operaciones que el servicio proporciona
Seleccionamos el proyecto e indicamos la lista y el método.
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace WCFServiceWebRole1
{
[ServiceContract]
public interface IServicioNumerosAleatoriosPrueba
{
[OperationContract]
List GetListaNumeros();
}
}
8.- En el segundo archivo ServicioNumerosAleatoriosPrueba.svc agregaremos la etiqueta [AspNetCompatibilityRequirements] que indicara que este servicio se puede ejecutar en código de compatibilidad ASP.NET. Allowed (es decir que esta permitido.
En la clase
Indicaremos:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.Text;
namespace WCFServiceWebRole1
{
[AspNetCompatibilityRequirements
(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ServicioNumerosAleatoriosPrueba : IServicioNumerosAleatoriosPrueba
{
public List GetListaNumeros()
{
List listanumeros = new List();
Random rnd = new Random();
for (int i = 0; i<= 20; i++)
{
int num = rnd.Next(1, 590);
listanumeros.Add(num);
}
return listanumeros;
}
}
}
9. En el WebConfig
services
service behaviorConfiguration=»MiComportamiento» name=»WCFServiceWebRole1.ServicioNumerosAleatorios»
endpoint address=»ws» binding=»basicHttpBinding»
contract=»WCFServiceWebRole1.IServicioNumerosAleatorios» /
endpoint address=»ws2″ binding=»wsHttpBinding»
contract=»WCFServiceWebRole1.IServicioNumerosAleatorios» /
/service
/services
10. Luego indicaremos que el proyecto WCFServiceRole1 que sea inicialize, por consiguiente al Servicio le indicaremos Set As Star Page.
Ejecutamos y verificamos que los números aleatorios aparecen al ser invocados en la consola WCF.
11.
Azure Cloud Service en Azure
Entraremos al portal de Azure: https://portal.azure.com/
Crearemos un Servicio en la nube
– Iremos a Nuevo
– Seleccionamos la opción de Servicio en la nube
Completamos los datos
12.
Crearemos un proyecto llamado ClienteHostAzure de tipo MVC.
13.
Lo primero que debemos hacer es agregar las referencias de servicio.
14.
Agregaremos un controlador a nuestro proyecto NumerosAleatoriosControllerPrueba
public class NumerosAleatoriosController : Controller
{
// GET: NumerosAleatorios
public ActionResult Index()
{
ServicioAleatoriosPrueba.ServicioNumerosAleatoriosClientPrueba cliente =
new ServicioAleatoriosPrueba.ServicioNumerosAleatoriosClientPrueba(«BasicHttpBinding_IServicioNumerosAleatoriosPrueba»);
int[] listanumeros = cliente.GetListaNumeros();
return View(listanumeros);
}
}
15.
Añadiremos una vista al controlador
16.
Pintamos la lista
17.
Comprobamos que los números se generan de forma aleatoria, a través del servicio que tenemos en Azure.
Hasta la próxima!
Descripción: HOST WCF EN AZURE CON WEB ROLE Y CONSUMO
Autor/a: Maria del Carmen Rojas Rios
Curso: Microsoft MCSD Web Applications + SharePoint Apps
Centro: Tajamar
Año académico: 2016-2017