इसकी मेरी पहली बार सेट करते समय एक OData सेवा और मैं निश्चित रूप से कुछ समस्या हो रही है के हूँ ...अनुरोध त्रुटि WCF डेटा सेवाओं
समस्या यह है कि मैं सेवा चल नहीं मिल सकता है, मैं मिलती रहती है एक "अनुरोध त्रुटि"।
मेरे पास researched है जो समस्या हो सकती है और मुझे पता चला कि एक आम मुद्दा यह है कि एक्सेस नियम गलत तरीके से टाइप किए गए हैं। इसलिए मैंने सिंगलर नामों के साथ इसे ठीक करने की कोशिश की है, बहुवचन नाम और मैंने typeof(Post).getType().Name
के साथ भी कोशिश की है, ठीक है, यह मेरा कोड है। मुझे उम्मीद है कि आप मेरी मदद कर सकते हैं, मैं घंटों तक अटक गया हूं।
public class ODataService : DataService<Entity>
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(DataServiceConfiguration config)
{
//config.SetEntitySetAccessRule("Users", EntitySetRights.All);
//config.SetEntitySetAccessRule("Posts", EntitySetRights.All);
//config.SetEntitySetAccessRule("Albums", EntitySetRights.All);
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.AllRead);
//config.SetServiceOperationAccessRule("GetPosts", ServiceOperationRights.AllRead);
config.UseVerboseErrors = true;
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
[WebGet]
public IQueryable<Post> GetPosts()
{
return CurrentDataSource.Posts.AsQueryable();
}
}
मेरी EntityFramework वर्ग की संरचना (db पहले)
तरीके और इकाई वर्ग के लिए सदस्यों को। यहां इकाइयों को बहुवचन में लिखा गया है।
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="Entity" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="data source=XXX;Initial Catalog=XXX;persist security info=True;user id=XXX;password=XXX;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
<add key="ValidationSettings:UnobtrusiveValidationMode" value="WebForms" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime requestValidationMode="4.5" targetFramework="4.5" encoderType="System.Web.Security.AntiXss.AntiXssEncoder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<pages controlRenderingCompatibilityVersion="4.5" />
<machineKey compatibilityMode="Framework45" />
</system.web>
<system.serviceModel>
<services>
<service name="LinkIT.Core.OData.ODataService" behaviorConfiguration ="DebugEnabled">
</service>
</services>
<behaviors>
<serviceBehaviors >
<behavior name="DebugEnabled">
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
</configuration>
एक विस्तृत त्रुटि संदेश:
सर्वर अनुरोध संसाधित करने में त्रुटि का सामना करना पड़ा
यह मेरा Web.config है। अपवाद संदेश है 'मान शून्य नहीं हो सकता है। पैरामीटर नाम: संपत्ति संसाधन स्रोत टाइप करें। अधिक जानकारी के लिए सर्वर लॉग देखें। अपवाद स्टैक ट्रेस है:
System.Data.Services.WebUtil.CheckArgumentNull [टी] पर (टी मूल्य, स्ट्रिंग parameterName) System.Data.Services.Providers.ResourceProperty..ctor (स्ट्रिंग नाम पर, ResourcePropertyKind तरह, System.Data.Services.Providers.ObjectContextServiceProvider.PopulateMemberMetadata (ResourceType resourceType, IProviderMetadata कार्यक्षेत्र में ResourceType propertyResourceType), IDictionary knownTypes, IDictionary
2 childTypes, IDictionary
2 entitySets) System.Data.Services.Providers.BaseServiceProvider पर System.Data.Servic पर .PopulateMetadata() es.Providers.BaseServiceProvider.LoadMetadata() पर System.Data.Services.DataService1.CreateMetadataAndQueryProviders(IDataServiceMetadataProvider& metadataProviderInstance, IDataServiceQueryProvider& queryProviderInstance, BaseServiceProvider& builtInProvider, Object& dataSourceInstance) at System.Data.Services.DataService
SyncInvokeProcessRequestForMessage पर System.Data.Services.DataService1.HandleRequest() at System.Data.Services.DataService
1.ProcessRequestForMessage (स्ट्रीम messageBody) पर 1.CreateProvider() (वस्तु, वस्तु [ ], System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke (वस्तु कहने पर वस्तु []), (MessageRpc & [] आदानों वस्तु, RPC System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin पर वस्तु [] & आउटपुट)) सिस्टम.erviceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5 (MessageRpc System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4 पर System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41 (MessageRpc & RPC) (MessageRpc & RPC) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime पर पर RPC)।ProcessMessage31 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime पर System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3 (MessageRpc & RPC) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2 (MessageRpc & RPC) पर पर (MessageRpc & RPC) .ProcessMessage11 (MessageRpc & RPC) System.ServiceModel.Dispatcher.MessageRpc.Process पर System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1 (MessageRpc & RPC) (बूलियन isOperationContextSet) पर
क्या आप अधिक विस्तृत त्रुटि संदेश प्राप्त करने के लिए यहां निर्देशों का पालन कर सकते हैं? http://blogs.msdn.com/b/phaniraj/archive/2008/06/18/debugging-ado-net-data-services.aspx –
@VitekKarasMSFT टिप – LazyTarget
के लिए धन्यवाद आपकी संपत्तियों में से एक एनम/स्थानिक प्रकार? –