调用webserivce时报错“对操作"方法名"的回复消息正文进行反序”
2012-07-12 17:05
369 查看
今天在工作中遇到这个问题。我就把它记录下来。
在调试的过程中发现问题:
调用webservice的时候出现的问题;问题描述如下:
报错内容:对操作“方法名”的回复消息正文进行反序列化时出错
我是这样考虑的。是不是传过来的webservice中的内容格式有问题?
然后我试着去使用 XmlSerializer 控制序列化生成 CDATA 内容(Serializing A String Within a CDATA Element )
这个类也记录下,以后用得到:
添加一个CDATA的类,
调用方法如下:
到最后还是出现同样的错误,没辙了,到gg上搜了下,百度知道中有个人提问这个同样的问题,我按它的回答设置了MaxReceivedMessageSize 这个属性 把它改大一点了。
但是还是不行,最后还是设置了maxStringContentLength的这个属性,最终可以了。
原因就是这个字段中的内容太多。所以造成报错对操作“方法名”的回复消息正文进行反序。
在调试的过程中发现问题:
调用webservice的时候出现的问题;问题描述如下:
报错内容:对操作“方法名”的回复消息正文进行反序列化时出错
我是这样考虑的。是不是传过来的webservice中的内容格式有问题?
然后我试着去使用 XmlSerializer 控制序列化生成 CDATA 内容(Serializing A String Within a CDATA Element )
这个类也记录下,以后用得到:
添加一个CDATA的类,
public class CDATA : IXmlSerializable { private string _value; /**/ /// <summary> /// 默认构造函数 /// </summary> public CDATA() { } /**/ /// <summary> /// 带参数构造函数 /// </summary> /// <param name="value"></param> public CDATA(string value) { this._value = value; } /**/ /// <summary> /// /// </summary> public string Value { get { return _value; } } XmlSchema IXmlSerializable.GetSchema() { return null; } void IXmlSerializable.ReadXml(XmlReader reader) { /**/ /***** 如果此节点中包含有多个节点须使用此方法。**/ this._value = reader.ReadElementContentAsString(); /**/ /* **********/ //this.text = reader.ReadString(); // reader.Read(); } void IXmlSerializable.WriteXml(XmlWriter writer) { writer.WriteCData(this._value); } /**/ /// <summary> /// 重写 获取CData节点的 内容 /// </summary> /// <returns></returns> public override string ToString() { return this._value; } /**/ /// <summary> /// 将 CDATA 对象隐式转换成 内容 字符串。 /// </summary> /// <param name="element"></param> /// <returns></returns> public static implicit operator string(CDATA element) { return (element == null) ? null : element._value; } /**/ /// <summary> /// 将 内容 对象隐式转换成 CDATA 字符串。 /// </summary> /// <param name="text"></param> /// <returns></returns> public static implicit operator CDATA(string text) { return new CDATA(text); } }
调用方法如下:
[XmlElement("Content", Type = typeof(CDATA))]
private CDATA _content = new CDATA();
public CDATA Content { get { return _content.Value; } set { _content = value; } }
到最后还是出现同样的错误,没辙了,到gg上搜了下,百度知道中有个人提问这个同样的问题,我按它的回答设置了MaxReceivedMessageSize 这个属性 把它改大一点了。
但是还是不行,最后还是设置了maxStringContentLength的这个属性,最终可以了。
原因就是这个字段中的内容太多。所以造成报错对操作“方法名”的回复消息正文进行反序。
相关文章推荐
- C#:调用webservice时提示对操作的回复消息正文进行反序列化时出错
- 调用webservice时提示对操作的回复消息正文进行反序列化时出错&&Web service 超过了最大请求长度
- 调用webservice时提示对操作的回复消息正文进行反序列化时出错
- 调用webservice时提示对操作的回复消息正文进行反序列化时出错
- 调用webservice时提示对操作的回复消息正文进行反序列化时出错&&Web service 超过了最大请求长度
- .net 项目 调用webservice 出错,异常信息:对操作“xxx”的回复消息正文进行反序列化时出错。解决方案。
- C#对操作“××”的回复消息正文进行反序列化时出错
- 对操作 “xxx” 的回复消息正文进行反序列化时出错。
- 当您调用的 RDA 对象的拉方法时出现错误消息:"重复的值不能插入唯一索引。[表名 = __sysRDASubscriptions,约束名 = c_LocalTableName]"
- zTree插件和layer弹出层结合进行添加,删除,修改操作时,针对出现调用父父页面方法出现问题,解决方法
- 客服端调用自定义宿主的WCF报错"没有终结点在侦听可以接受消息的http://localhost:8085/mex。这通常是由于不正确的地址或者 SOAP 操作导致的错误"的解决方案。
- SVN检出的时候提示"未授权打开根进行编辑操作"的错误的解决方法
- Android中使用ContentProvider进行跨进程方法调用
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- 使用“递归方法”对整个目录进行删除操作
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- 黑马程序员--Java基础加强--07.【反射创建对象 操作字段 调用方法的异同】【个人总结】
- hibernate4中使用Session doWork()方法进行jdbc操作(代码)
- 什么情况下用+运算符进行字符串连接比调用StringBuilder对象的append方法连接字符串性能更好?
- 微信公众号在开发模式下与php进行通信及回复消息