2012-04-12 6 views
2

Ich habe hinzugefügtWie VsDebuggerCausalityData Header-Abschnitt von SOAP-Anforderung in WCF

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

meine app.config, aber das SOAP-Client noch produziert den Header zu entfernen.

Ich benutze benutzerdefinierte Bindung mit Messageversion Soap11 und httpstransport festgelegt.

Gibt es eine einfache Möglichkeit, es zu entfernen?

Antwort

-1

Die Kopfzeile wird hinzugefügt, wenn Ihre Konfiguration die Verfolgung oder Protokollierung von WCF aktiviert. schalte sie aus und das wird nicht gesendet.

+0

In der Konfiguration ist keine Ablaufverfolgung oder Protokollierung festgelegt. Wenn es standardmäßig aktiviert ist, wie schalte ich es aus? –

+1

passiert es nur, wenn Sie im Debug-Modus laufen, oder auch wenn Sie für die Freigabe kompilieren und die Exe außerhalb von VS ausführen? –

+0

Es passiert nicht außerhalb VS. Gibt es eine Möglichkeit, es während des Debuggens auszuschalten? –

6

Versuchen Sie, die Debugger-Unterstützung für WCF in Visual Studio

Run zu deaktivieren, dies zu deinstallieren - vsdiag_regwcf.exe -u

Es befindet sich auf C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\

befindet Sie können den Debugger-Unterstützung installieren -i verwenden Parameter, und Sie können den Parameter -s verwenden, um zu überprüfen, ob die Debugger-Unterstützung aktiviert ist.

Weitere Details finden Sie unter this.

9

Ich löste dies manuell in das Verhalten verantwortlich für die Umsetzung der vscasualitydata Entfernen

 var vs = srv.Endpoint.Behaviors.Where((i) => i.GetType().Namespace.Contains("VisualStudio")); 
     srv.Endpoint.Behaviors.Remove((System.ServiceModel.Description.IEndpointBehavior)vs.Single()); 
1

Basierend auf der „Arbeits“ Antwort von @Luiz Felipe ich mit dieser etwas robustere Lösung kam.

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