【发布时间】:2019-12-17 00:13:38
【问题描述】:
我的soapwebservice 和我正在为其编写的新C# 客户端出现问题。服务器端采用现代标准 .NET Framework,而客户端只有 .NET 3.5。
每当我试图从 web 应用程序返回一个字符串时,我都会收到错误:
"Fehler beim Deserialisieren des Textkörpers der Antwortnachricht für Vorgang \"MyMethod\"。"唯一的例外是:“Fehler im XML-Dokument (1,40286)。” 翻译:服务器响应的序列化错误,带有 XML 文档错误。
现在让我更困惑的是:
- 每当我在 Web 方法中抛出异常而不是返回文本时(例如: 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");
}
}
现在我有点困惑,我的问题是:什么可能导致这个反序列化错误以及如何消除它?
【问题讨论】: