我想在ASP.NET 2.0 Web應用程序中訪問使用basicHttpBinding公開的WCF服務。這些服務使用實體框架4.0,其業務實體使用ADO.NET自我追蹤實體生成器T4模板創建。我可以附加到從ASP.NET 2.0應用程序的服務就好了,編譯,但在運行時,當我嘗試調用服務來保存時,我得到以下錯誤:從ASP.NET 2.0訪問WCF服務
格式化程序嘗試嘗試反序列化消息:嘗試反序列化參數http://tempuri.org/:foc時發生錯誤。 InnerException消息是'使用類型'Business.App.ObjectChangeTracker'作爲只能收集不受NetDataContractSerializer支持。考慮使用CollectionDataContractAttribute屬性或SerializableAttribute屬性標記類型,或者將屬性添加到setter。'。有關更多詳細信息,請參閱InnerException。
我對服務聲明沒有什麼特別之處;只是正常的ServiceContract和OperationContract屬性。
[ServiceContract]
public interface ILSRPipelineServiceEndPoint
{
[OperationContract]
LSRRequestTypeMapping[] GetRequestTypeMappings();
[OperationContract]
LSRResponseTypeMapping[] GetResponseTypeMappings();
[OperationContract]
ServiceResult<FOCResponse> ValidateFOC(FOCResponse foc);
[OperationContract]
ServiceResult<FOCResponse> SendFOC(FOCResponse foc);
[OperationContract]
ref_SourceType GetGatewaySourceType();
}
所有顯示都標有對象的[DataContract(IsReference =真)]
任何想法,我做錯了,或者我能做些什麼來解決這個問題?謝謝你,一切!
錯誤客戶端或服務器端? – saille
它是服務器端。 SendFOC方法工作正常,直到我添加了返回類型(它以前是void),所以這絕對是問題的根源。我只是不知道如何解決它。 –
我改變了ValidateFOC和SendFOC方法的返回類型,不在返回對象圖中包含任何對象,也沒有使用泛型的任何對象。新的返回類型只是一個單一的bool字段和一個字符串數組字段。我仍然得到這個錯誤。 D'哦!令人沮喪! –