Tengo un problema de compatibilidad interesante entre un cliente WCF y un servicio web Java. En resumen, he encontrado que la forma en que se genera el encabezado está causando el problema: los elementos ActivityId y Action en el encabezado, así como lo que WCF está haciendo con el espacio de nombres del encabezado personalizado está causando problemas. He consumido con éxito el WSDL con wsdl.exe, pero WCF parece estar manipulando el encabezado de una manera que no le gusta al servicio web de Java. ¿Hay alguna forma en que pueda configurar los enlaces para que el cliente WCF no envíe los elementos ActivityId y Action?Eliminar ActivityId de WCF Request
Respuesta
¿Tiene el seguimiento activado en el cliente? Creo que eso es lo que está agregando el ID de la actividad como su intento de dirigir la actividad de rastreo al servicio para el rastreo de extremo a extremo. Desactive el indicador de seguimiento de actividad y debería ir; consulte mi comentario sobre el encabezado de acción
fue el trazado que agrega esos elementos; deshabilitar el rastreo ayudó a solucionar el problema. El servicio web de Java no interpretó muy bien el mensaje SOAP (algún tipo de problema de espacio de nombres extraño). – CodeMonkey1313
¿Cómo lo apagas? ¿Dónde está apagado? – irperez
@irperez He reducido las configuraciones que deben desactivarse para eliminar el encabezado SOAP 'ActivityId'. – StuartLC
Este problema suele ocurrir cuando un cliente WCF intenta conectarse a un servidor que no pertenece a WCF, p. JAX-WS, Websphere etc.
Sólo para añadir al comentario de Richard respuesta salvavidas y dirección de @ irperez, los ajustes reales que necesitan ser desactivado para evitar diagnósticos WCF de la adición de ActivityId
durante WCF diagnóstico de localización son eliminar:
- Retire
ActivityTracing
deswitchvalue
- Conjunto
propagateActivity
afalse
es decir, el cambio
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml"/>
</listeners>
</source>
...
Para:
<source name="System.ServiceModel" switchValue="Information"
propagateActivity="false">
<listeners>
<add name="xml"/>
</listeners>
Si el ActivityId
está habilitado, se inyecta el siguiente en los encabezados SOAP, que puede romper los servidores confiados:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<ActivityId CorrelationId="5de75017-da08-4ac2-84f2-5374953cc2a1"
xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">
9f076849-e76e-4675-84c1-5026b1c2eb1a
</ActivityId>
</s:Header>
- 1. Eliminar archivo de Pull Request en GitHub
- 2. jQuery $ .ajax llamada al servicio WCF regresa 400 Bad Request
- 3. Cross Domain jQuery Ajax Request y WCF REST Service
- 4. El servicio WCF que llama a otro servicio WCF falla con el error web 400 Bad Request
- 5. 400 Bad Request HTTP Response utilizando un WCF POST a través de JQuery
- 6. Llamar a un servicio ASP.NET 4.0 WCF de jQuery produce 400 Bad Request
- 7. Solicitud de servicio web WCF grande que falla con (400) HTTP Bad Request
- 8. ¿Cómo afectan las Tareas en la Biblioteca paralela de tareas a ActivityID?
- 9. ajax request browser limit
- 10. Http Request Life Cycle
- 11. Apache Tomcat Request Threads
- 12. POST request orígenes
- 13. Firefox Cross Domain Request
- 14. Copiando Http Request InputStream
- 15. PHP SOAP HTTP Request
- 16. Usando JSON POST Request
- 17. POST Request (Javascript)
- 18. spring ajax request
- 19. Request-URI Too Large
- 20. http post request erlang
- 21. JAVA: http post request
- 22. AFNetworking y POST Request
- 23. Node.js Https request Error
- 24. node.js POST request
- 25. .NET Soap Request de registro en el cliente
- 26. WCF: ¿Hay alguna manera de eliminar el campo ExtensionData?
- 27. Cómo eliminar DataMember nulos partir de la respuesta en WCF
- 28. jax-ws: setting Content-Type of request
- 29. Rails 3 get request referrer
- 30. Http Request - Bypass DNS [.Net]
nos muestras el lado del cliente generó la configuración? –