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, maxDepthreaderQuotas,但没有成功。

我得到了getConfig方法的一个小解决方案:当我改变Reference.cs文件并将System.DateTime变量类型更改为string时,它工作得很好,但随后我需要调用setConfig方法,这种改变带来了另一个问题……另外,我读到过修改web服务契约不是一个好的做法。

我一直在寻找一个解决方案,现在这里是一些地方我检查:这个,这个,这个或这个。

有人能帮忙吗?由于

web服务:反序列化回复消息体时出错

似乎我找到了一个解决问题的方法:

在服务引用下的reference.cs文件中,我将每个DateTimeSystem.Nullable<System.DateTime>对象更改为string对象-就像我之前尝试过的那样-这样可以制作get方法。

当尝试调用set方法时,我用以下方式传递日期:

vt.beginDate = DateTime.Now.ToString("o");

ToString("o")似乎是防止序列化问题的有效解决方案。