获取 XML 正文 - 调用 soap 网络服务时出现反序列化错误

Getting XML body - Deserialization errors on a call to a soap webservice

我的 soapwebservice 和我为它编写的新 C# 客户端有问题。服务器端采用现代标准 .NET Framework,而客户端只有 .NET 3.5。

每当我尝试 return 来自网络应用程序的字符串时,我都会收到错误消息:

"Fehler beim Deserialisieren des Textkörpers der Antwortnachricht für Vorgang \"MyMethod\"." with the einner exception: "Fehler im XML-Dokument (1,40286)." Translated: A serialization error for the server response with an XML-Document error.

现在更让我困惑的是:

客户代码:

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");
    }
}

现在我有点困惑,我的问题是:什么可能导致这个反序列化错误以及如何消除它?

终于找到原因了。尽管我对为什么会这样感到有点困惑,但在任何地方都没有任何关于它的消息。

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