Onun kuran bir OData Servis ve benİstek hatası WCF Veri Hizmetleri
Sorun hizmetinizin çalışmaya alamayan olmasıdır ... Elbette bazı sorunlar yaşama olduğum benim ilk kez, ben almaya devam bir "İstek Hatası".
Sorunum ne olabilir researched var ve ben ortak bir sorun erişim kurallarının yanlış yazılan olduğunu buldum. Bu yüzden Tekil isimler, Çoğul isimlerle de bu sabitleme denedim ve ben de burada Eh typeof(Post).getType().Name
benim kodudur ile çalıştık. Umarım bana yardım edebilirsin, saatlerce sıkışıp kaldım.
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();
}
}
Varlık sınıfı için
Yöntem ve Üyeleri (db önce) benim EntityFramework sınıfının yapısı. Burada varlıklar çoğul olarak yazılır.
<?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>
Detaylı bir hata mesajı:
Sunucu isteği işlerken bir hatayla karşılaştı
Bu benim Web.config olduğunu. istisnası 'Değer boş olamaz. Parametre adı: propertyResourceType '. Daha fazla bilgi için sunucu günlüklerine bakın. özel Yığın izleme: System.Data.Services.WebUtil.CheckArgumentNull [T] 'de
(T değeri String parameterName) System.Data.Services.Providers.ResourceProperty..ctor (String adı en, ResourcePropertyKind tür System.Data.Services.Providers.ObjectContextServiceProvider.PopulateMemberMetadata (KaynakTürü resourcetype, IProviderMetadata çalışma alanı en KaynakTürü propertyResourceType), System.Data.Services.Providers.BaseServiceProvider de ıdictionary knownTypes ıdictionary
2 childTypes, IDictionary
2 entitySets) .PopulateMetadata() System.Data.Servic adresinde es.Providers.BaseServiceProvider.LoadMetadata() SyncInvokeProcessRequestForMessage de System.Data.Services.DataService1.HandleRequest() at System.Data.Services.DataService
1.ProcessRequestForMessage (Akış messageBody) en System.Data.Services.DataService1.CreateMetadataAndQueryProviders(IDataServiceMetadataProvider& metadataProviderInstance, IDataServiceQueryProvider& queryProviderInstance, BaseServiceProvider& builtInProvider, Object& dataSourceInstance) at System.Data.Services.DataService
1.CreateProvider() (Obje, nesne [ ] Nesne []) System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke (nesne derecede, (MessageRpc & System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin de [] & çıkışları) Nesne RPC [] girişler Nesne) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5 (MessageRpc) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime de System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4 de System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41 (MessageRpc & RPC) (MessageRpc & RPC) en RPC). System.ServiceModel.Dispatcher.ImmutableDispatchRuntime de System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2 (MessageRpc & RPC) en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3 (MessageRpc & RPC) de ProcessMessage31 (MessageRpc & RPC) System.ServiceModel.Dispatcher.MessageRpc.Process de System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1 (MessageRpc & rPC) (Boolean isOperationContextSet) de .ProcessMessage11 (MessageRpc & rPC)
Daha ayrıntılı bir hata mesajı almak için lütfen buradaki talimatları izleyin misiniz? http://blogs.msdn.com/b/phaniraj/archive/2008/06/18/debugging-ado-net-data-services.aspx –
@VitekKarasMSFT Teşekkür ederiz – LazyTarget
Evinizden biri bir Enum/Uzamsal tip? –