我有一个调用第三方Web服务的VB.NET Web服务。如何在将.NET发送到第三方Web服务之前查看它生成的SOAP消息,如何在.NET序列化之前查看SOAP响应。
创建独立的EXE时,我看到自动生成的Reference.vb文件,但在我的项目是Web服务时看不到类似的文件。我发现有很多C#代码可以执行此操作,但在VB.NET中没有。
编辑 - Fiddler和TCP记录器很棒,但不能用于我的目的。我需要能够从应用程序中访问原始SOAP消息,以便我可以记录它们或修改它们。我需要做的不仅仅是看到消息来回传递。
答案 0 :(得分:2)
您可以使用fiddler或tcp嗅探器来过滤和识别主机上的所有传出和传入流量。
如果您想查看xml请求和响应,请执行此操作。
答案 1 :(得分:0)
如何使用扩展来检查SOAP消息?
在ASP.NET Web服务中访问原始SOAP消息 http://msdn.microsoft.com/en-us/magazine/cc188761.aspx
答案 2 :(得分:0)
我试图做同样的事情,这似乎对我有用:
Dim message As String = OperationContext.Current.RequestContext.RequestMessage.ToString()
我认为这不会那么容易,因为大部分时间ToString()
都会返回班级的名字,但是我试了一下,然后低估了。
我知道你在一月份问过这个问题,所以从那以后你就找到了一个更好的方式让我知道。
请注意,如果您在实现IErrorHandler
的类中捕获异常,则必须从ProvideFault()
方法而不是HandleError()
方法执行此操作,因为在调用HandleError()
方法之前,上下文已关闭。
希望这有帮助。