我的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 不同,这意味着它们不太向下兼容!
- 1 回答
- 0 关注
- 162 浏览
添加回答
举报
0/150
提交
取消