我已經爲Dynamics CRM 2011編寫了一個插件,用於調用託管在不同服務器上的WCF服務。下面是我的插件中的代碼。在插件的類庫中,我沒有使用服務引用,但使用svcutil.exe來生成WCF客戶端。從動態crm 2011插件調用WCF服務
var binding = new BasicHttpBinding();
binding.Name = "BasicHttpBinding_IMyService";
binding.Security.Mode = BasicHttpSecurityMode.None;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
var endpoint = new EndpointAddress("http://test/MyService.svc");
ChannelFactory<IMyService> factory = new ChannelFactory<IMyService>(binding, endpoint);
IMyService channel = factory.CreateChannel();
channel.InsertTest(testobject);
我收到以下錯誤:
'System.Threading.Tasks.Task`1 [System.Int32]' 不能被序列化。考慮使用DataContractAttribute屬性標記它,並使用DataMemberAttribute屬性標記要序列化的所有成員。如果類型是一個集合,請考慮使用CollectionDataContractAttribute來標記它。有關其他支持的類型,請參閱Microsoft .NET Framework文檔。
任何人都有經驗試圖做到這一點?或者我在做什麼錯誤的任何想法?
WCF服務此刻在其他地方使用嗎? – glosrob