当前位置:  开发笔记 > 编程语言 > 正文

如何从SOAP消息中删除"VsDebuggerCausalityData"数据?

如何解决《如何从SOAP消息中删除"VsDebuggerCausalityData"数据?》经验,为你挑选了4个好方法。

我遇到一个问题,来自一个特定客户端的传入SOAP消息被标记为无效并被我们的XML防火墙设备拒绝.Visual Studio正在插入额外的有效负载数据; 我们认为额外的数据可能导致问题b/c我们在这些消息中看到"VsDebuggerCausalityData"但在其他没有问题的客户端发送的其他数据中没有.无论如何,这是一个起点.

我的问题是客户端如何删除这些额外的数据并仍然从VS运行?为什么VS把它放在那里?

谢谢.



1> 小智..:

要删除'VsDebuggerCausalityData',您需要使用以下命令停止对WCF的Visual Studio Diagnostic:

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

我希望这可以帮助你或其他人.



2> Darryl Braat..:

一个快速的谷歌揭示了这应该摆脱它,让他们将其添加到web.config或app.config为他们的应用程序.


  
    
       
    
  
 

该信息是调试信息,接收服务可以使用该信息帮助将事物追溯回客户端.(也许,我猜一点)

我提出了一个跟进问题,以确定魔术开关实际来自何处.


这在.NET 4.0中失败了.我将此部分添加到我的配置文件中,现在客户端在实例化时抛出异常.

3> Gone Coding..:

根据@Luiz Felipe我的回答,我想出了这个更强大的解决方案:

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



4> Jesse Chisho..:

达里尔的回答对我不起作用.每个开发人员都必须做ggrocco的答案.

我最终编写了一个MessageInspector,并将此代码添加到BeforeSendRequest方法中:

int limit = request.Headers.Count;
for(int i=0; i

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有