如何从WCF中的SOAP请求中删除VsDebuggerCausalityData标头部分

时间:2012-04-12 12:01:23

标签: wcf soap .net-3.5 wcf-security

我添加了

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

到我的app.config,但SOAP客户端仍然生成标题。

我正在使用带有messageversion Soap11和httpstransport set的自定义绑定。

是否有一种简单的方法可以删除它?

4 个答案:

答案 0 :(得分:10)

我通过手动删除负责将vscasualitydata放入的行为来解决这个问题。

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

答案 1 :(得分:6)

尝试在Visual Studio中禁用WCF的调试器支持

运行此命令以卸载 - vsdiag_regwcf.exe -u

位于C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\

您可以使用-i参数重新安装调试器支持,并且可以使用-s参数检查是否启用了调试器支持。

有关详细信息,请查看this

答案 2 :(得分:1)

基于@Luiz Felipe的“工作”答案,我提出了这个稍微强大的解决方案:

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

答案 3 :(得分:0)

当您的配置启用wcf跟踪或日志记录时,将添加标头。关掉它们就不会发送了。