¿Alguien ha tenido alguna experiencia con las extensiones de servicios web? Pasé un tiempo tratando de hacer una extensión del servicio web a partir de los ejemplos de MS.Interceptar mensajes en un cliente de WCF
Tengo un cliente de servicio web .net 3.5, creado al agregar una referencia al WSDL, a través del VS IDE "Proyecto> Agregar referencia de servicio". Esto construyó mi cliente de servicio web, y todo funciona bien.
Necesito interceptar el cuerpo de solicitud y respuesta para mi cliente del servicio web. He encontrado muchas referencias a las extensiones de servicios web, pero estoy teniendo un ataque de los cansados, y simplemente no puedo hacer que mis extensiones se disparen.
He utilizado el ejemplo de MS desde aquí "Cómo implementar una extensión SOAP" (http://msdn.microsoft.com/en-us/library/7w06t139.aspx), que crea un registrador para las secuencias de solicitud/respuesta.
El artículo MS relacionados "Jabón mensaje de modificación" (http://msdn.microsoft.com/en-us/library/esw638yk(VS.85).aspx) muestra cómo habilitar la extensión SOAP para el cliente web:
Aplicación de la extensión SOAP
Hay dos formas de ejecutar una extensión SOAP en una aplicación cliente o servidor. Primero, puede configurar la aplicación para ejecutar la extensión. Para configurar su extensión SOAP para que se ejecute en todos los métodos web en todos los servicios web, especialmente en una vroot, edite la sección Elemento
<soapExtensionTypes>
dentro del archivo Web.config. El siguiente código muestra que el valor de atributo de tipo debe estar en una línea e incluir el nombre completo de la extensión, más la versión, cultura y token de clave pública del ensamblado firmado.< configuración >
<system.web>
<webServices>
<soapExtensionTypes>
< tipo add = "Contoso.MySoapExtension, versión = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" priority = "1" group = "0"/>
</soapExtensionTypes >
</webservices >
</system.web>
</configuración >
he compilado la TraceExtension en su propia biblioteca de clases, y se hace referencia en el web.config del servicio web proyecto de este modo:
< complemento type = "TraceExtension, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = ef8757fac167b8d8" priority = "1" group = "Alto "/ >
No joy. No se registra nada, no se golpean puntos de interrupción.
Luego eliminé la clase referenciada y dejé caer el código fuente en el proyecto del servicio web.
He intentado añadir una referencia a él como tal (mi espacio de nombres es ServcieTest001):
< Agregar tipo = "ServiceTest001.TraceExtension" group = "alta" prioridad = "1"/>
Utilicé el siguiente hilo como guía para habilitar la extensión "obtener-raw-soap-data-from-a-web-reference-client-running-in-asp-net" (http://stackoverflow.com/questions/300674/getting-raw-soap-data-from-a-web-reference-client-running-in-asp-net).
Todavía no hay alegría. Luego copié el código del hilo anterior y todavía no puedo hacer que la extensión se dispare cuando realizo una solicitud SOAP.
¿Alguien me puede indicar un proyecto de demostración de la extensión del servicio web para descargar, así que puedo desmontarlo y resolver lo que me falta?
Ojalá pudiera utilizar wcf ... Es un servicio web heredado (no .net) al que me estoy conectando, que utiliza un esquema de cifrado personalizado. Es por eso que estoy tratando de construir la extensión del servicio web. –