我的soapwebservice 和我為其編寫的新C# 客戶端有問題。服務(wù)器端采用現(xiàn)代標(biāo)準(zhǔn) .NET Framework,而客戶端僅具有 .NET 3.5。每當(dāng)我嘗試從網(wǎng)絡(luò)應(yīng)用程序返回字符串時,我都會收到錯誤:“無法反序列化操作“MyMethod”的響應(yīng)消息正文?!?但有一個例外:“XML 文檔中出現(xiàn)錯誤 (1.40286)?!?翻譯:服務(wù)器響應(yīng)的序列化錯誤,并帶有 XML 文檔錯誤?,F(xiàn)在讓我更困惑的是:每當(dāng)我不返回文本而是在 Webmethod 中拋出異常(例如: throw new ArgumentException )時,我都不會收到序列化錯誤。當(dāng) java 客戶端使用此 Web 服務(wù)時......我從該客戶端完全沒有收到任何錯誤。客戶端代碼: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"));} 服務(wù)器代碼:public class MyProxy : System.Web.Services.WebService{ public MyProxyHeader header; [WebMethod] [SoapHeader("header")] public string myMethod(string mytext) { return Convert.ToBase64String("blahblubb"); }}現(xiàn)在我有點困惑,我的問題是:什么可能導(dǎo)致這個反序列化錯誤以及如何消除它?
1 回答

慕村225694
TA貢獻(xiàn)1880條經(jīng)驗 獲得超4個贊
本質(zhì)上:當(dāng)我將客戶端 .NET Framework 更新到 4.6 后,它就開始工作了。看起來最新的 .NET Framework 構(gòu)建 xml 字符串的方式與 3.5 .NET Framework 不同,這意味著它們不太向下兼容!
- 1 回答
- 0 關(guān)注
- 221 瀏覽
添加回答
舉報
0/150
提交
取消