web服务:反序列化回复消息体时出错
本文关键字:出错 消息 回复 服务 反序列化 web | 更新日期: 2023-09-27 18:06:08
使用Visual Studio 2010,我调用SOAP webservices并不断得到错误"错误在反序列化回复消息"
我这样调用WS方法: wsConfig.config_pttClient client = new wsConfig.config_pttClient();
wsConfig.getConfigInput gci = new wsConfig.getConfigInput();
wsConfig.getConfigOutput gco = new wsConfig.getConfigOutput();
gco = client.getConfig(gci); // the exception is thrown here
该方法不需要输入数据:我使用SoapUI测试它,它工作得很好。使用fiddler,我看到呼叫已经发出,并且所有数据都正确。
经过一段时间的研究,我试图改变xsd
中的maxStringContentLength
, maxDepth
等readerQuotas
,但没有成功。
我得到了getConfig
方法的一个小解决方案:当我改变Reference.cs
文件并将System.DateTime
变量类型更改为string
时,它工作得很好,但随后我需要调用setConfig
方法,这种改变带来了另一个问题……另外,我读到过修改web服务契约不是一个好的做法。
我一直在寻找一个解决方案,现在这里是一些地方我检查:这个,这个,这个或这个。
有人能帮忙吗?由于
似乎我找到了一个解决问题的方法:
在服务引用下的reference.cs
文件中,我将每个DateTime
和System.Nullable<System.DateTime>
对象更改为string
对象-就像我之前尝试过的那样-这样可以制作get
方法。
当尝试调用set
方法时,我用以下方式传递日期:
vt.beginDate = DateTime.Now.ToString("o");
ToString("o")
似乎是防止序列化问题的有效解决方案。