我有一個名爲ExceptionsJSONService的WCF服務。與我的解決方案中定義的所有其他服務不同,它由於某些原因無法在JavaScript中實例化客戶端。實體框架序列化錯誤阻止wcf服務工作
這種失敗:
var service = new ExceptionsJSONService();
預計對象。我一直試圖弄清楚爲什麼會發生這種情況,並且在整個項目中檢查了我的所有定義,並且一切看起來都很好,並且與我定義的所有其他服務(所有工作)都一致。
然後我檢查了svclog文件,發現一個錯誤。異常類型是:
System.Runtime.Serialization.InvalidDataContractException, System.Runtime.Serialization,版本= 4.0.0.0,文化=中性 公鑰= b77a5c561934e089
異常消息爲:
類型 'System.Data.Entity.DbSet`1 [CCMModel.AttachmentDoc]' 不能是 串行化。考慮使用DataContractAttribute 屬性標記它,並使用DataMemberAttribute屬性標記您想要序列化的所有成員。如果類型是集合,請考慮使用CollectionDataContractAttribute將其標記爲 。有關其他支持的類型,請參閱 Microsoft .NET Framework文檔。
CCMModel是命名空間,AttachmentDoc是我的一個實體。但問題不在於AttachmentDoc。這只是按字母順序通過實體列表。我將一個實體從附件重命名爲RAttachments,然後它只是繼續向AttachmentDoc拋出一個異常。
事情是,我的代碼中沒有任何地方嘗試序列化任何EF實體。所有我序列化的類都有DataContracts。我相信這兩者相關的原因是在Open ServiceHost'ExceptionsJSONService'出現在svclog中之後發生異常。
有人遇到過這個嗎?