SoapHttpClientProtocol日志响应xml

时间:2011-10-07 08:20:17

标签: c# web-services webservice-client soaphttpclientprotocol

我们的应用程序有几天问题。我们使用SoapHttpClientProtocol来调用java mbeans。这基本上调用java webservice来调用方法。

我们的问题是,有时我们会遇到以下异常:

  

XML文档中存在错误(1,172089)。在   System.Xml.Serialization.XmlSerializer.Deserialize(的XmlReader   xmlReader,String encodingStyle,XmlDeserializationEvents事件)
  在System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader   xmlReader,String encodingStyle)at   System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage   消息,WebResponse响应,流responseStream,布尔值   asyncCall)at   System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串   methodName,Object [] parameters)at   DynamicMBeanResourceBinding.Invoke(OperationRequestType   ManagedResourceOperation)在JMXConnectorService.cs中:第781行   JMXWSClient.InvokeMethodOnObject(String objectName,String methodName,   Connector \ Client.cs中的ParameterType [] paramValue):第132行

     

引起:发生了意外的文件结束。以下内容   未关闭:图标

我们在通信层中的最后一个代码是:

 /// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("soapHeaders", Direction = SoapHeaderDirection.In)]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://jsr262.dev.java.net/DynamicMBeanResource/Invoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)]
[return: System.Xml.Serialization.XmlElementAttribute("ManagedResourceOperationResult", Namespace = "http://jsr262.dev.java.net/jmxconnector")]
public GenericValueType Invoke([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://jsr262.dev.java.net/jmxconnector")] OperationRequestType ManagedResourceOperation)
{
    object[] results = this.Invoke("Invoke", new object[] {ManagedResourceOperation});
    return ((GenericValueType)(results[0]));
}

在框架反序列化之前,有没有办法记录响应xml?任何帮助或想法都非常受欢迎。

1 个答案:

答案 0 :(得分:3)

以干净的方式执行此操作的最简单方法是创建SOAP扩展。我在这里找到了一个很好的教程

http://www.codeproject.com/KB/webservices/efficientsoapextension.aspx