我有一个C#控制台程序,该程序向SOAP服务发出请求。
此SOAP消息的接口是通过Microsoft.VSDesigner, Version 4.0.30319.42000.
通过以下步骤生成的:
到那时,我已经生成了调用服务的代码。
以下是调用服务的片段:
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.xxxxx.com/VerifyInsurance", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
[return: System.Xml.Serialization.XmlElementAttribute("CoverageResponseDocument", Namespace="http://www.xxxxx.com/CoverageVerification/")]
public CoverageResponseDocument VerifyInsurance([System.Xml.Serialization.XmlElementAttribute(Namespace="http://www.xxxxx.com/CoverageVerification/")] CoverageRequest CoverageRequest)
{
object[] results = this.Invoke("VerifyInsurance", new object[] {
CoverageRequest});
return ((CoverageResponseDocument)(results[0]));
}
我可以进行哪些更改,以便可以看到发送和接收的SOAP消息的确切字符串?
通过更改代码或更改配置。
我是一位长期的开发人员,但是对Visual Studio还是陌生的,因此我希望能得到一个使用我在屏幕上看到的术语的答案。
答案 0 :(得分:1)
您好,需要注意的几点(尽管我接受了以下事实:我无法更改代码以记录请求和响应,但以下是我检查过的其他两个选项,可以尝试使用)->
- 使用诊断(跟踪)获取原始请求响应
我遵循了相同的步骤,并添加了 Service Reference 并应用了诊断程序,并能够将原始请求响应记录在日志文件中-您可以了解有关跟踪here- >
- 如果您有权访问Web服务代码,则可以编写Soap Extensions。
所以SOAPExtension是
使用创建的XML Web服务的SOAP扩展的基类 ASP.NET。
扩展类提供了处理原始请求和响应的详细级别的细节。您可以记录这些日志的一种方法,以供您检查跟踪日志文件。可以找到一个示例here-
- 另一种方法是在Visual Studio外部使用fiddler监视http和https的流量
SO中还有另一个线程正在讨论相同的问题。请看看。
Getting RAW Soap Data from a Web Reference Client running in ASP.net
下面的讨论主要是使用SOAP代理。添加Web引用是引用客户端代理的旧方法。如果没有理由仅使用Web参考,则使用服务参考代替Web参考。您可以在以下线程中找到更多详细信息。