You are on page 1of 8

Qu es un servicio web?

Es un conjunto de protocolos y estndares que son usados para exponer informacin y funcionalidad en un
ambiente distribuido.
Los servicios web estan basados en XML, y las aplicaciones distribuidas acceden a ellos por Internet usando
protocolos de comunicacin como SOAP (Simple Object Access Protocol), el cual provee una forma estandar
y simple de manejo y envio de mensajes en XML.
Como crear un servicio web en ASP.NET?
1.- Cree un nuevo sitio Web de tipo ASP.NET Web Service.

Nos crea dos carpetas una llamada App_Code y App_Data y un archivo Service.asmx.

Si damos doble clic en la clase Services.cs, veremos el siguiente cdigo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET
AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
public Service () {

//Uncomment the following line if using designed components
//InitializeComponent();
}

[WebMethod]
public string HelloWorld() {
return "Hello World";
}

}
Vamos a generar un mtodo que haga una consulta a una tabla llamada Alumnos.
[WebMethod]
public string ObtenerAlumnos()
{
SqlConnection sqlConn;
XmlReader rdr;
string ret = "";

try
{
string connString = @"Data Source=.\MSPLAP;Initial
Catalog=Escuela;Integrated Security=True";
sqlConn = new SqlConnection(connString);
sqlConn.Open();

string sqlString = "SELECT * FROM ALUMNOS FOR XML AUTO";
SqlCommand command = new SqlCommand(sqlString, sqlConn);
rdr = command.ExecuteXmlReader();
rdr.Read();

while (rdr.ReadState != System.Xml.ReadState.EndOfFile)
{
ret += rdr.ReadOuterXml();
}

ret = "<Alumnos>" + ret + "</Alumnos>";
sqlConn.Close();
rdr.Close();

}
catch
{

}
return ret;

}

Este mtodo consiste en utilizar un XMLReader para leer los datos de la consulta y guardarlos en un string de
acuerdo a un formato de tags. Si visualiza el servicio web tendr el mtodo ObtenerAlumnos.


Consumir nuestro servicio web en una aplicacin ASP.NET
Creamos un nuevo sitio web ASP.NET y lo agregamos a nuestra solucin.
Agregamos una referencia web (web reference) como se muestra en la figura:

Nos aparecer una pantalla en donde tendremos las siguientes opciones:

Escogeremos que busca algun servicio web en esta solucin.

Al encontrar el servicio procedemos a seleccionarlo.

Una vez seleccionado tendremos la URL, agregaremos el nombre de la referencia.

Nos aparecer de la siguiente manera dentro del explorador de soluciones.

Vamos a agregar en el formulario Default.aspx o el que ustedes deseen.
Un control GridView y un XmlDataSource.
Nos vamos al cdigo Default.aspx.cs.
Agregamos el nameSpace que en este caso es la referencia que agregamos.
using miServicioWeb;
Agrego una instancia del servicio web.
miServicioWeb.Service ws = new Service();
Dentro del mtodo Load o el que ustedes gusten, vincular el mtodo del servicio web al XmlDataSource.
protected void Page_Load(object sender, EventArgs e)
{
XmlDataSource1.Data = ws.ObtenerAlumnos();
GridView1.DataSource = XmlDataSource1;
GridView1.DataBind();

}
Quedando como resultado: