Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF-查看对安全Web服务的xml请求/响应_C#_.net_Xml_Wcf - Fatal编程技术网

C# WCF-查看对安全Web服务的xml请求/响应

C# WCF-查看对安全Web服务的xml请求/响应,c#,.net,xml,wcf,C#,.net,Xml,Wcf,我有一个WCF服务应用程序,在这个应用程序中,我通过安全连接调用第三方web服务 我一直在尝试使用fiddler查看请求-响应流,但在尝试了半天多后,我放弃了使用它,并应用了我在互联网上所能找到的一切。它有一个问题与证书,即使我做了更多的小提琴手证书到信任区 我最好的选择是什么来简单地查看我对这个第三方web服务所做的xml请求和响应 我使用的是生成的代理类,因此目前无法访问正在发送和接收的原始xml。我很好奇我是否把一些可以做得简单得多的事情复杂化了。这是我的开发机器,我可以访问几乎所有的东西

我有一个WCF服务应用程序,在这个应用程序中,我通过安全连接调用第三方web服务

我一直在尝试使用fiddler查看请求-响应流,但在尝试了半天多后,我放弃了使用它,并应用了我在互联网上所能找到的一切。它有一个问题与证书,即使我做了更多的小提琴手证书到信任区

我最好的选择是什么来简单地查看我对这个第三方web服务所做的xml请求和响应

我使用的是生成的代理类,因此目前无法访问正在发送和接收的原始xml。我很好奇我是否把一些可以做得简单得多的事情复杂化了。这是我的开发机器,我可以访问几乎所有的东西,没有任何限制

一个简单的方法来做到这一点,请

编辑:


现在我甚至不需要使用跟踪。我只需要查看请求/响应的序列化输出。即使我可以从VisualStudio调试器或类似的调试器中执行此操作,它也会有所帮助

将此添加到app.config:

<system.diagnostics>
<sources>
  <source name="System.ServiceModel.MessageLogging">
    <listeners>
      <add name="messages" type="System.Diagnostics.XmlWriterTraceListener" initializeData="messages.svclog" />
     </listeners>
  </source>
</sources>


它会将所有消息记录到messages.svclog。然后,您可以查看它们。

使用-它工作得非常好,并配有一个方便的工具

您可以设置大量选项—但在其核心,您必须向WCF服务和客户端配置中添加类似的内容:

<configuration>
   <system.diagnostics>
      <sources>
            <source name="System.ServiceModel" 
                    switchValue="Information, ActivityTracing"
                    propagateActivity="true">
            <listeners>
               <add name="traceListener" 
                   type="System.Diagnostics.XmlWriterTraceListener" 
                   initializeData= "c:\log\Traces.svclog" />
            </listeners>
         </source>
      </sources>
   </system.diagnostics>
</configuration>


这里有更多信息。

因为我试图从引用到我的WCF应用程序的asmx web服务读取soap消息,所以我的问题的解决方案是创建一个继承自System.web.Services.Protocols.SoapExtension的类,在web.config中注册此类,以便通过此类路由并查看所有流量

这些通信都不会显示在WCF跟踪上,因此这是不够的。然而,这是有用的,我学会了它,所以现在我能够看到我的wcf服务应用程序和web应用程序之间发生的一切


这篇文章为我敲定了它

我是这样设置的,但是跟踪中没有任何关于我的应用程序和第三方web服务之间通信的内容。。。这可能是因为SSL吗?“您的应用程序和第三方Web服务”之间的通信是WCF呼叫吗?然后你肯定会在你的WCF日志中看到条目。第三方是作为我的WCF应用程序的web引用添加的web服务。我的应用程序正在发送请求并接收来自该服务的响应。此通信中的任何req/resp参数信息绝对不存在于记录道中。即使使用记事本,我也在跟踪上执行了查找/搜索操作,并且没有跟踪日志中的任何req/resp对象或值。目前正在实施截取器行为来截取消息,希望这能满足我的需要。@Kaivalya:如果您可以将其添加为WCF服务引用,您可以使用WCF跟踪来跟踪通过它的流量。……链接对我不起作用,但这一个确实起到了作用:
<configuration>
   <system.diagnostics>
      <sources>
            <source name="System.ServiceModel" 
                    switchValue="Information, ActivityTracing"
                    propagateActivity="true">
            <listeners>
               <add name="traceListener" 
                   type="System.Diagnostics.XmlWriterTraceListener" 
                   initializeData= "c:\log\Traces.svclog" />
            </listeners>
         </source>
      </sources>
   </system.diagnostics>
</configuration>