今天在工作中遇到这个问题。我就把它记录下来。
在调试的过程中发现问题:
调用webservice的时候出现的问题;问题描述如下:
我是这样考虑的。是不是传过来的webservice中的内容格式有问题?
然后我试着去使用 XmlSerializer 控制序列化生成 CDATA 内容(Serializing A String Within a CDATA Element )
这个类也记录下,以后用得到:
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的这个属性,最终可以了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。