Webservices:反序列化回复消息体时出错

时间:2014-06-02 08:55:10

标签: c# xml web-services soap xsd

使用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,我看到调用已经完成,所有数据的答案都是正确的。

经过一段时间的研究,我试图在readerQuotas内改变maxStringContentLength maxDepthxsd等,但没有运气。

我对getConfig方法有一些解决方法:当我更改Reference.cs文件并将System.DateTime变量类型更改为string时,它可以正常工作但是然后我需要调用一个setConfig方法,并且该更改会带来another problem ...此外,我已经读过更改网络服务合同不是一个好习惯。

我一直在寻找一段时间的解决方案,以下是我检查的一些地方:thisthisthisthis

有人可以帮忙吗? 感谢

1 个答案:

答案 0 :(得分:0)

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

在我的reference.cs文件服务参考下,我将每个DateTimeSystem.Nullable<System.DateTime>对象更改为string个 - 正如我之前尝试过的那样 - 这样才能够制作get方法。

尝试调用set方法时,我会使用以下内容传递日期:

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

ToString("o")似乎是工作解决方案,以防止序列化问题。