Pregunta

Tengo un problema en el que los mensajes SOAP entrantes de un cliente en particular se están marcados como no válidos y rechazado por nuestro XML dispositivo firewall.Parece capacidad de carga adicional se insertan los datos de Visual Studio;estamos pensando en el extra de datos puede ser la causa de un problema b/c estamos viendo "VsDebuggerCausalityData" en estos mensajes, pero no en otras enviado desde un cliente diferente que no está teniendo un problema.Es un punto de partida, de todos modos.

La pregunta que tengo es ¿cómo puede el cliente quitar este extra de datos y ejecutar de VS?¿Por qué es VS ponerlo en allí?

Gracias.

¿Fue útil?

Solución

Una rápida en google revela que este debe deshacerse de él, que consigue añadir a la 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 la información de depuración que el que recibe el servicio puede utilizar para ayudar a localizar a las cosas de vuelta al cliente.(tal vez, estoy adivinando un poco)

  • Me han propuesto un seguimiento pregunta para determinar fueron la magia interruptor en realidad proviene de.

Otros consejos

Para quitar 'VsDebuggerCausalityData" debes dejar de Visual Studio de Diagnóstico para WCF mediante este comando:

VS 2008 -> c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE>vsdiag_regwcf.exe -u VS 2010 -> c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>vsdiag_regwcf.exe -u

Espero que esto ayude a usted o a otras personas.

Darryl respuesta no funcionó para mí.Cada desarrollador tiene que hacer ggrocco la respuesta.

Terminé de escribir un MessageInspector, y agregar este código a la BeforeSendRequest método:

int limit = request.Headers.Count;
for(int i=0; i<limit; ++i)
{
    if (request.Headers[i].Name.Equals("VsDebuggerCausalityData"))
    {
        request.Headers.RemoveAt(i);
        break;
    }
}

Basada en una respuesta por @Luiz Felipe Se me ocurrió esto un poco más robusta solución:

var vs = client.Endpoint.EndpointBehaviors.FirstOrDefault((i) => i.GetType().Namespace == "Microsoft.VisualStudio.Diagnostics.ServiceModelSink");
if (vs != null)
{
    client.Endpoint.Behaviors.Remove(vs);
}

O el uso "Iniciar sin depurar" en Visual Studio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top