visual studio - studio - ¿Cómo eliminar los datos de "VsDebuggerCausalityData" del mensaje SOAP?
crear web service soap c# visual studio 2017 (5)
Para eliminar ''VsDebuggerCausalityData'' necesita detener el Diagnóstico de Visual Studio para WCF usando este comando:
VS 2008 -> c: / Archivos de programa / Microsoft Visual Studio 9.0 / Common7 / IDE> vsdiag_regwcf.exe -u VS 2010 -> c: / Archivos de programa / Microsoft Visual Studio 10.0 / Common7 / IDE> vsdiag_regwcf.exe -u
Espero que esto te ayude a ti o a otras personas.
Tengo un problema donde los mensajes SOAP entrantes de un cliente en particular se marcan como no válidos y son rechazados por nuestro dispositivo de firewall XML. Parece que Visual Studio está insertando datos adicionales de la carga útil; creemos que los datos adicionales pueden estar causando un problema por error al ver "VsDebuggerCausalityData" en estos mensajes, pero no en otros enviados por un cliente diferente que no tiene problemas. Es un punto de partida, de todos modos.
La pregunta que tengo es ¿cómo puede el cliente eliminar esta información adicional y seguir ejecutándose desde VS? ¿Por qué VS lo está poniendo allí?
Gracias.
La respuesta de Darryl no funcionó para mí. Cada desarrollador tiene que hacer la respuesta de ggrocco.
Terminé escribiendo un MessageInspector y agregando este código al método BeforeSendRequest :
int limit = request.Headers.Count;
for(int i=0; i<limit; ++i)
{
if (request.Headers[i].Name.Equals("VsDebuggerCausalityData"))
{
request.Headers.RemoveAt(i);
break;
}
}
O use "Iniciar sin depuración" en Visual Studio.
Basado en una respuesta de @Luiz Felipe
me ocurrió esta solución ligeramente más robusta:
var vs = client.Endpoint.EndpointBehaviors.FirstOrDefault((i) => i.GetType().Namespace == "Microsoft.VisualStudio.Diagnostics.ServiceModelSink");
if (vs != null)
{
client.Endpoint.Behaviors.Remove(vs);
}
Un google rápido revela que esto debería deshacerse de él, hacer que lo agreguen a web.config o app.config para su aplicación.
<configuration>
<system.diagnostics>
<switches>
<add name="Remote.Disable" value="1" />
</switches>
</system.diagnostics>
</configuration>
La información es información de depuración que el servicio receptor puede usar para ayudar a rastrear las cosas al cliente. (tal vez, estoy adivinando un poco)
- He propuesto una pregunta de seguimiento para determinar de dónde viene el interruptor mágico.