第一種:無法序列化 DataTable。未設置 DataTable 名稱。
第二種:
排除過程如下:
1.用WCF調試狀態下的客戶端調用ESB的Publish方法調用成功,證明ESB的推送是沒有問題的;
2.用WinForm調用部署在IIS上的WCF的測試方法(不包含bus.Publish方法)調用成功,證明WCF服務是沒有問題的;
3.用WinForm調用部署在IIS上的WCF的bus.Publish方法調用失敗,報上述異常;
4.用WinForm調用WCF調試狀態下的bus.Publish方法調用成功。
最終得出結果(度娘說是什么類沒有序列化,狠狠的把我坑了):很可能是IIS的原因。
既然WinForm可以調用WCF調試狀態下的WSDL地址,為什么不能調用WCF部署在IIS上的WSDL地址?很可能是因為IIS的權限不夠,解決方案如下:
IIS管理器-->應用程序池-->選中目標應用池-->高級設置-->進程模型-->標識-->自定義賬戶-->設置-->輸入本機Administrator級別的用戶名、密碼,配置如下: