में सेवा योग्य नहीं है मैंने पहले एंटिटी फ्रेमवर्क कोड को धाराप्रवाह एपीआई के साथ बनाया है।एंटिटी फ्रेमवर्क मेरे वेबएपीआई एमवीसी 4 समाधान
इस एक्सएमएल फ़ाइल इससे जुड़ी किसी भी शैली में जानकारी है प्रतीत नहीं होता है: अगर मैं एक प्राप्त अनुरोध मैं कोई त्रुटि मिलती बनाने
public class NewsController : ApiController
{
private TrafficTheoryContext db = new TrafficTheoryContext();
// GET api/News
public IEnumerable<News> GetNews()
{
//return new List<News> {
// new News{ Title = "Featuring Azure ACS Authentication", Subtile="Hello "}};
return db.News.AsEnumerable();
}
}
:
मैं एक वेब एपीआई नियंत्रक की है। दस्तावेज़ पेड़ नीचे दिखाया गया है।
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
The 'ObjectContent`1' type failed to serialize the response body for content type 'application/xml; charset=utf-8'.
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace/>
<InnerException>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Type 'System.Data.Entity.DynamicProxies.News_786DE29B12691F869E9C9DF523A808EABE06546C3FCE3354F77875B83B9EB51C' with data contract name 'News_786DE29B12691F869E9C9DF523A808EABE06546C3FCE3354F77875B83B9EB51C:http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies' is not expected. Consider using a DataContractResolver or add any types not known statically to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding them to the list of known types passed to DataContractSerializer.
</ExceptionMessage>
<ExceptionType>
System.Runtime.Serialization.SerializationException
</ExceptionType>
<StackTrace>
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeAndVerifyType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, Boolean verifyKnownType, RuntimeTypeHandle declaredTypeHandle, Type declaredType) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithXsiType(XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle objectTypeHandle, Type objectType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle, Type declaredType) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) at WriteArrayOfNewsToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , CollectionDataContract) at System.Runtime.Serialization.CollectionDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.DataContractSerializer.WriteObject(XmlWriter writer, Object graph) at System.Net.Http.Formatting.XmlMediaTypeFormatter.<>c__DisplayClass7.<WriteToStreamAsync>b__6() at System.Threading.Tasks.TaskHelpers.RunSynchronously(Action action, CancellationToken token)
</StackTrace>
</InnerException>
</Error>
यदि मैं सिर्फ समाचार की एक सूची लौटाता हूं तो यह जुर्माना काम करता है। मैंने देखा कि क्लॉज किसी प्रकार के नाम से जुड़ा हुआ है जो मुझे नहीं पता कि क्या है?
वेबपाई को काम करने के लिए मैं क्या करूँ?
मैं का उपयोग करता है: \ EntityFramework.5.0.0 \ lib \ net40 \ EntityFramework.dll और हाँ आलसी अक्षम और proxi समस्या हल हो जाती है, लेकिन नहीं यकीन है कि अगर thats एक अच्छा विचार im? –
मुझे नहीं पता कि DataContractResolver क्या है, इसे Google करेगा। –
आलसी लोडिंग (या प्रॉक्सी सृजन) को अक्षम करना - यह निर्भर करता है कि आपका एप्लिकेशन इसका उपयोग कर रहा है या नहीं। यदि ऐसा है तो यदि आप नेविगेशन प्रॉपर्टी को स्वचालित रूप से लोड होने की उम्मीद करते हैं तो यह ऐप क्रैश हो जाएगा और यह नहीं होगा (क्योंकि प्रॉक्सी सृजन अक्षम किया गया था) – Pawel