2011-10-12 41 views
3

調用我的Web服務時出現此異常。我在我的服務中使用EF並試圖返回由EF創建的POCO類。有任何想法嗎??與EF一起使用Web服務時的例外情況

System.Web.Services.Protocols.SoapException:服務器無法對 進程請求。 ---> System.InvalidOperationException:有 是生成XML文檔的錯誤。 ---> System.InvalidOperationException:類型 System.Data.Entity.DynamicProxies.Job_3C04107CB03F22888B19EF7537A795C816D03441852DC37A42729E7542384BBE 不是預期的。使用XmlInclude或SoapInclude屬性 指定靜態未知的類型。在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write2_Job(字符串 N,串NS,工作O,布爾ISNULLABLE,布爾needType)在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write9_GetJobByNumberResponse(對象[] P)在在 System.Xml.Serialization.XmlSerializer.Serialize Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer13.Serialize(對象 objectToSerialize,XmlSerializationWriter作家)(的XmlWriter的XmlWriter, 對象O,XmlSerializerNamespaces命名空間,字符串的encodingStyle, 字符串ID) ---內部異常堆棧跟蹤結束---在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, 對象O,XmlSerializerNamespaces命名空間,字符串的encodingStyle, 字符串ID)在 System.Web.Services.Protocols.SoapServerProtocol.WriteReturns(對象[] returnValues,流的OutputStream)在 System.Web.Services.Protocols.WebServiceHandler.WriteReturns (對象[] returnValues)在 System.Web.Services.Protocols.WebServiceHandler.Invoke()--- 內部異常堆棧跟蹤的結尾---

確定我發現,提到設置的柱ProxyCreationEnabled屬性爲false;我已經完成了這個,現在它工作正常。什麼是將此屬性設置爲false的效果

回答

8

您需要禁用EF上下文中的延遲加載和代理創建,否則您的POCO作爲例外狀態實際上是無法序列化的DynamicProxy

This article將提供一些信息。

+0

我將ProxyCreationEnabled屬性設置爲false,我沒有更改LazyLoadingEnabled。將ProxyCreationEnabled設置爲false會產生什麼影響? –

+1

這意味着您不會得到延遲加載,但是如果您在WCF服務的上下文中想到這一點,那就是您想要的。一旦對象在客戶端被反序列化並且WCF通道已經關閉,它就沒辦法延遲加載任何東西。 –

相關問題