我有一个向 SOAP 服务发出请求的 C# 控制台程序。
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很陌生,所以我希望得到一个使用我在屏幕上看到的术语的答案。
嗨,有几点需要注意(虽然我接受我无法更改代码以记录请求和响应的事实,但以下是我已经检查的其他几个选项,您可以尝试( -
- 使用诊断(跟踪(获取原始请求响应
我遵循了相同的步骤并添加了服务参考并应用了诊断程序,并能够在日志文件中记录原始请求响应 - 您可以在此处阅读有关跟踪的信息-
- 如果您有权访问您的 Web 服务代码,那么您可以编写 Soap 扩展。
所以肥皂是
使用 创建的 XML Web 服务的 SOAP 扩展的基类 ASP.NET。
扩展类提供处理原始请求和响应的粒度级别详细信息。一种方法可以将这些记录到跟踪日志文件以供检查。一个例子可以在这里找到 -
- 另一种方法是在Visual Studio之外使用小提琴手来监控http和https的流量
SO 中还有另一个线程在谈论相同的内容。请看一看。
从 ASP.net 中运行的 Web 引用客户端获取 RAW SOAP 数据
下面的讨论更多是使用 SOAP 代理。添加 Web 引用是引用客户端代理的旧方法。如果没有理由仅使用 Web 引用,请使用服务引用而不是 Web 引用。您可以在下面的线程中找到更多详细信息。
https://stackoverflow.com/questions/2158106/web-reference-vs-service-reference?answertab=active#tab-top