为了账号安全,请及时绑定邮箱和手机立即绑定

获取 XML 正文 - 调用 SOAP Web 服务时出现反序列化错误

获取 XML 正文 - 调用 SOAP Web 服务时出现反序列化错误

C#
一只甜甜圈 2023-08-20 10:22:51
我的soapwebservice 和我为其编写的新C# 客户端有问题。服务器端采用现代标准 .NET Framework,而客户端仅具有 .NET 3.5。每当我尝试从网络应用程序返回字符串时,我都会收到错误:“无法反序列化操作“MyMethod”的响应消息正文。” 但有一个例外:“XML 文档中出现错误 (1.40286)。” 翻译:服务器响应的序列化错误,并带有 XML 文档错误。现在让我更困惑的是:每当我不返回文本而是在 Webmethod 中抛出异常(例如: throw new ArgumentException )时,我都不会收到序列化错误。当 java 客户端使用此 Web 服务时......我从该客户端完全没有收到任何错误。客户端代码:public void MyMethod (bool _IsInDebugMode, MyWebMethodRef.MyProxySoapClient myclient){    BasicHttpSecurityMode secMode = (_IsInDebugMode) ? BasicHttpSecurityMode.None : BasicHttpSecurityMode.Transport;    BasicHttpBinding wsBinding = new BasicHttpBinding(secMode);    wsBinding.MaxReceivedMessageSize = 2147483647;    wsBinding.OpenTimeout = new TimeSpan(0, 0, 1);    wsBinding.CloseTimeout = new TimeSpan(0, 0, 1);    wsBinding.SendTimeout = new TimeSpan(0, 0, 30);    wsBinding.ReceiveTimeout = new TimeSpan(0, 0, 30);    string ret = myclient.myMethod(Convert.ToBase64String("Test"));}   服务器代码:public class MyProxy : System.Web.Services.WebService{    public MyProxyHeader header;    [WebMethod]    [SoapHeader("header")]    public string myMethod(string mytext)    {        return Convert.ToBase64String("blahblubb");    }}现在我有点困惑,我的问题是:什么可能导致这个反序列化错误以及如何消除它?
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

本质上:当我将客户端 .NET Framework 更新到 4.6 后,它就开始工作了。看起来最新的 .NET Framework 构建 xml 字符串的方式与 3.5 .NET Framework 不同,这意味着它们不太向下兼容!


查看完整回答
反对 回复 2023-08-20
  • 1 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信