打印肥皂请求和C#webservice的响应

时间:2012-04-26 18:26:49

标签: c# web-services soap logging

我是Webservices的新手,我有一个问题。 我有一个Web服务和这样的方法,

     CompanyOpereations srv = new CompanyOperations();
           srv.getCustomerInfo(input);

我想获取并响应。写入soap请求和getCustomerInfo方法的响应。

有人能帮帮我吗? 我已经看到了这个,但是记录了我需要在屏幕上打印的文件, Getting RAW Soap Data from a Web Reference Client running in ASP.net

我甚至看过这个,但不知道如何调用这个,我的客户端的WriteOutput方法可以帮助我吗? http://msdn.microsoft.com/en-us/library/ms972353.aspx

提前致谢。

如果我的问题不明确,请告诉我!!

这不是用于调试..它用于打印它作为方法的输出,以便其他人可以在其他地方使用XML。

谢谢!

3 个答案:

答案 0 :(得分:2)

我可能会使用SOAP拦截扩展,他们只是将所有内容写入日志:

  

ASP.NET允许通过可扩展性机制构建与SOAP相关的基础结构。 ASP.NET SOAP扩展体系结构围绕扩展,可以在客户端或服务器上的消息处理的特定阶段检查或修改消息

MSDN docs有一个很好的完整示例......


<强> 增加: 我无法实现上面的答案所以我变得流氓。

将此内容添加到您的web.config文件中:

<configuration>

  <system.diagnostics>
    <trace autoflush="true" useGlobalLock="false"/>
    <sources>
      <source name="System.Net">
        <listeners>
          <add name="traceFile"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="traceFile"
           type="System.Diagnostics.TextWriterTraceListener"
           initializeData="App_Data/trace.log"
           traceOutputOptions="None">
      </add>
    </sharedListeners>
    <switches>
      <add name="System.Net" value="Verbose"/>
    </switches>
  </system.diagnostics>

</configuration>

这将在App_Data/trace.log中输出like this one的日志文件。

只需解析该文件或按原样使用它......

我没有找到任何其他方法,因为ServiceClient上没有方法可以显示此类信息。

我还 set up a small Weather Service Project ,因此您可以查看它并查看正在创建的日志文件

答案 1 :(得分:0)

虽然这个实用程序是从石器时代开始的,但是当我使用它时它完成了很好的工作:SOAP Toolkit 3.0。我猜他们从那时起就添加了更复杂的方法,但你应该先尝试一下。

答案 2 :(得分:0)

我可以解决此问题的最佳方法是在返回对象时序列化我的对象:)