.

Mapear la definicion SOAP del WSDL

 Si por cualquier motivo no te gusta la devulucion del WSDL que nos brinda un Servicio Web, no te preocupes, todo se puede modificar.Gracias a un articulo de Christian Weyer, puedes alterar, como es este caso la URL que nos devuleve el la etiqueta <soap:address location=http://www.tuURL.com /> o <soap12:address location="http://www.tuURL.com" /> .Casos reales en los que el IIS contesta por el puerto 80 y estan mapeados en el firewall los puertos, existen redirecciones, .....

Creamos un fichero SoapAddressReflector.cs dentro del App_Code

using System.Configuration;
using System.Web.Services.Description;

namespace SymbiaIT.Tools.Web.Services.Metadata
{

public class SoapAddressReflector : SoapExtensionReflector

{

public override void ReflectMethod()

{

ServiceDescription sd = ReflectionContext.ServiceDescription;

ServiceCollection myServiceCollection = sd.Services;

foreach (Port port in myServiceCollection[0].Ports)

{

 

foreach (ServiceDescriptionFormatExtension extension in port.Extensions)

{

if (extension is SoapAddressBinding)

{

SoapAddressBinding address = (SoapAddressBinding)extension;

address.Location = ConfigurationManager.AppSettings["SoapAddress"];

}

}

}

}

}

}

 

En las secciones pertinentes del web.config

<configuration>

<appSettings>

<!-- URL del web service, para el parseo soap -->

<add key="SoapAddress" value="http://scorm.cuadernia.educa.jccm.es/cuadernia/service.asmx"/>

</appSettings>

<system.web>

<webServices>

<soapExtensionReflectorTypes>

<add type="SymbiaIT.Tools.Web.Services.Metadata.SoapAddressReflector, App_code"/>

</soapExtensionReflectorTypes>

</webServices>

</system.web>

</configuration>

 

Posted: 30/4/2008 10:03 por Thempra | con 4 comment(s)
Archivado en: ,
Comparte este post:

Comentarios

romeral ha opinado:

oye.. y donde invocas el metodo...

o lo realiza automatico...

gracias!!

# December 9, 2008 3:59 PM

Thempra ha opinado:

Efectivamente, solo con esos datos se hace la llamada.

# December 10, 2008 9:39 AM

miguel ha opinado:

Como hago para enviar datos a un servidor utilizando SOAP, WSDL y XSD? Debo enviar una serie de datos y recibir la respuesta. Gracias!! :)

# December 17, 2008 2:20 PM

Diego ha opinado:

Muy Buen post muchas Gracias!!!

Funciono perfecto!!!

# June 15, 2011 6:00 PM