Frage

Ich habe ein problem, bei dem eingehende SOAP-Nachrichten von einem bestimmten client werden als ungültig markiert und abgelehnt von unserer XML-firewall-Gerät.Es erscheint besonders Nutzlast-Daten von Visual Studio eingefügt;wir denken die extra-Daten können ein problem verursachen b/c wir sehen "VsDebuggerCausalityData" in diesen Nachrichten, aber nicht in anderen geschickt, von einem anderen client, der nicht ein problem.Es ist ein Ausgangspunkt, sowieso.

Die Frage die ich habe ist, wie kann die client-entfernen Sie diesen zusätzliche Daten und führen Sie immer noch von VS?Warum ist VS man es dort überhaupt?

Vielen Dank.

War es hilfreich?

Lösung

Eine schnelle google zeigt, dass diese, sollten Sie es loswerden, bekommen Sie auf hinzufügen, um den web.config oder app.config für Ihre Anwendung.

<configuration>
  <system.diagnostics>
    <switches>
       <add name="Remote.Disable" value="1" />
    </switches>
  </system.diagnostics>
</configuration> 

Die Informationen werden debug-Informationen, die der empfangenden Dienst verwenden können, um zu helfen trace Dinge an den client zurück.(vielleicht, ich bin zu raten, ein wenig)

  • Ich habe vorgeschlagen, ein follow-up Frage um zu bestimmen, wurden die magischen Schalter kommt eigentlich aus.

Andere Tipps

Für entfernen 'VsDebuggerCausalityData" Sie müssen stoppen de Visual Studio-Diagnose für WCF verwenden Sie diesen Befehl:

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

Ich hoffe, dies hilft Ihnen oder anderen Personen.

Darryl Antwort funktionierte nicht für mich.Jeder Entwickler hat damit zu tun, ggrocco Antwort.

I ended up writing a MessageInspector, und diesen code hinzufügen die BeforeSendRequest Methode:

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

Basierend auf einer Antwort von @Luiz Felipe Mir kam diese etwas robustere Lösung:

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

Oder verwenden Sie "Starten ohne Debuggen" in Visual Studio.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top