C# Restful wcf服务错误';无法用根名称反序列化XML正文

C# Restful wcf服务错误';无法用根名称反序列化XML正文,c#,.net,wcf,rest,C#,.net,Wcf,Rest,我已经为一个手机应用程序写了一个RESFful服务。 我不确定我做错了什么?我试图用多种内容类型设置来测试它,但没有成功。 来自手机应用程序的数据以以下格式编码。 PHNHBWXWOLJLC3BVBNNLIHHTBG5ZONNHBWXWPSj1CM46B2FZAXM6MFTZXM6DGM6U0FNTDOYLJA6CHJVDG9JB2WIPJXZYW1SCDPTDGF0DXM+PHNhbWxwOlN0YXR1c0NvZGU+aGVyVmFsdWU+PC94ZW5JONPCGHLCKRHKGE+PC

我已经为一个手机应用程序写了一个RESFful服务。 我不确定我做错了什么?我试图用多种内容类型设置来测试它,但没有成功。 来自手机应用程序的数据以以下格式编码。 PHNHBWXWOLJLC3BVBNNLIHHTBG5ZONNHBWXWPSj1CM46B2FZAXM6MFTZXM6DGM6U0FNTDOYLJA6CHJVDG9JB2WIPJXZYW1SCDPTDGF0DXM+PHNhbWxwOlN0YXR1c0NvZGU+aGVyVmFsdWU+PC94ZW5JONPCGHLCKRHKGE+PC94ZW5ZW5JOVUY3J5CHRRLZERBWGE+PC9ZYW1SOKWUY3J5J5CHRRL5J5CHRZYLZERKW3J5J5J5CHRZYLZZFZC2V2VYDKWKWWWYDJ3J5J5

这是界面中的定义:

[OperationContract]
    [WebInvoke]
    String GetUserInfo(String authenticateRequest);
我得到错误:使用以下测试代码

'无法反序列化根名称为'Binary'且根命名空间为''的XML正文(对于操作'GetMobileCeckCapture'和协定('IMobileCC','http://tempuri.org/“))使用DataContractSerializer

以下是我尝试测试服务的方式: 字符串encryptedSAML=

PHNHBWXWOLJLC3BVBNNLIHHTBG5ZONNHBWXWPSj1CM46B2FZAXM6MFTZXM6DGM6U0FNTDOYLJA6CHJVDG9JB2WIPJXZYW1SCDPTDGF0DXM+PHNhbWxwOlN0YXR1c0NvZGU+aGVyVmFsdWU+PC94ZW5JONPCGHLCKRHKGE+PC94ZW5ZW5JOVUY3J5CHRRLZERBWGE+PC9ZYW1SOKWUY3J5J5CHRRL5J5CHRZYLZERKW3J5J5J5CHRZYLZZFZC2V2VYDKWKWWWYDJ3J5J5


您是否尝试过使用UTF-8编码而不是ASCII编码

 HttpWebRequest req = WebRequest.Create("http://localhost/Services/Mservice.svc/GetUserInfo") as HttpWebRequest;
            req.KeepAlive = false;
            req.Method = "POST";
            req.ContentType = "text/xml; encoding='utf-8'";
              UTF8Encoding encoding = new UTF8Encoding();
            byte[] bDataToPass = encoding.GetBytes(encryptedSAML);
            req.ContentLength = bDataToPass.Length;

该字符串看起来是Base64编码的。是的,这是正确的,但参数应为这种格式。我在wcf级别的处理中进行解码,但我无法测试它。
 HttpWebRequest req = WebRequest.Create("http://localhost/Services/Mservice.svc/GetUserInfo") as HttpWebRequest;
            req.KeepAlive = false;
            req.Method = "POST";
            req.ContentType = "text/xml; encoding='utf-8'";
              UTF8Encoding encoding = new UTF8Encoding();
            byte[] bDataToPass = encoding.GetBytes(encryptedSAML);
            req.ContentLength = bDataToPass.Length;