繁体   English   中英

在 C# 中记录 Soap 消息

[英]Log Soap message in C#

我有一个向 SOAP 服务发出请求的 C# 控制台程序。

此 SOAP 消息接口是使用Microsoft.VSDesigner, Version 4.0.30319.42000.生成的Microsoft.VSDesigner, Version 4.0.30319.42000. 通过以下步骤:

  1. 右键单击参考
  2. 选择添加服务引用
  3. 选择高级
  4. 添加网页参考
  5. 输入我正在使用的 URL 或服务
  6. 命名服务
  7. 单击添加引用。

那时,我生成了调用服务的代码。

这是调用服务的片段:

[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 不熟悉,所以我希望得到一个使用我在屏幕上看到的术语的答案。

嗨,有几点需要注意(尽管我接受了我无法更改代码以记录请求和响应的事实,以下是我检查过的其他几个选项,您可以尝试)-

  1. 使用 Diagnostics(Tracing) 获取原始请求响应

我遵循了相同的步骤并添加了服务参考并应用了诊断并能够在日志文件中记录原始请求响应-您可以在此处阅读有关跟踪的信息-

  1. 如果您可以访问您的网络服务代码,那么您可以编写 Soap 扩展。

所以 SOAPExtention 是

使用 ASP.NET 创建的 XML Web services 的 SOAP 扩展的基类。

扩展类提供处理原始请求和响应的粒度级别详细信息。 您可以将这些记录到跟踪日志文件以供您检查的一种方法。 一个例子可以在这里找到 -

  1. 另一种方法是在 Visual Studio 之外使用fiddler来监控 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM