2012-04-26 120 views
2

我是Web服务的新手,我有一个问题。 我有一个Web服务,这样的方法,打印肥皂请求和C#web服务的响应

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

我想和RESPONSE.WRITE SOAP请求和方法的getCustomerInfo响应。

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

我甚至看到了这一点,但不知道如何从我的客户端调用该方法,WriteOutput方法可以有一个人请帮我?? http://msdn.microsoft.com/en-us/library/ms972353.aspx

在此先感谢。

如果我的问题是不明确的,请让我知道!

这不是为调试..其打印它作为方法的输出,使一些人可以使用XML别的地方。

谢谢!

+0

仅供调试吗?你可以简单地使用[菲德勒(http://fiddler2.com/fiddler2/) – balexandre 2012-04-26 18:28:07

+0

不,这不是用于调试..其打印它作为方法的输出,使一些人可以使用XML! – helpme 2012-04-26 18:29:25

回答

0

我能解决这个问题的最好办法是序列化我的对象,因为我是返回一个对象:)

0

虽然这个工具是从石器时代,它做的工作非常好,当我使用它:SOAP Toolkit 3.0。我想他们自那时起就加入了更复杂的方法,但你应该先试一试。

+0

感谢您的回复..你有我能看到的例子吗? – helpme 2012-04-26 18:54:59

+0

一旦启动它,它应该充当您的应用程序和Web服务之间的代理。基本上,您必须将应用程序指向另一个端口,比如说8080,然后让代理将它们转发到端口80,但这取决于您正在使用的特定实现。我也知道,微软改变了SOAP封装,因为.NET 2.0 ... 我很抱歉,我不能有更多的帮助了很多。 – 2012-04-26 23:21:57

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所以你可以看看,看看正在创建日志文件

+0

可以请告诉我如何调用这个方法?我的意思是我应该在调用我的方法之后开始?我的意思是在这个CompanyOpereations之后srv = new CompanyOperations(); srv.getCustomerInfo(input); – helpme 2012-04-26 18:57:24

+0

添加一个简单的项目,以及如何设置服务日志 – balexandre 2012-04-26 20:36:51

+0

感谢您的帮助@balexandre这节省了我几个小时:) – zanona 2014-01-08 19:14:02