Professional Documents
Culture Documents
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: