尝试访问使用Entity框架构建的ADO.NET数据服务时抛出异常

时间:2009-09-07 03:51:18

标签: entity-framework wcf-data-services

在尝试使用实体框架和ado.net数据服务时,我正在打一个真正的头脑。

在请求甚至进入我的代码之前,我得到一个WCF异常(底部是Exception)。 它根本不是很有用。我所有的主人都有主键,所有实体的所有属性都是公开的。可能导致这种情况的任何想法?

异常文字: 服务器遇到处理请求的错误。异常消息是“给定的密钥在字典中不存在。”。请参阅服务器日志以获取更多详异常堆栈跟踪是:

System.ChrowHelper.ThrowKeyNotFoundException()at System.Collections.Generic.Dictionary 2.get_Item(TKey key) at System.Data.Services.Providers.ObjectContextServiceProvider.PopulateMemberMetadata(ResourceType resourceType, MetadataWorkspace workspace, IDictionary 2 entitySets,IDictionary 2 knownTypes) at System.Data.Services.Providers.ObjectContextServiceProvider.PopulateMetadata(IDictionary 2 knownTypes,IDictionary 2 entitySets) at System.Data.Services.Providers.BaseServiceProvider.PopulateMetadata() at System.Data.Services.DataService 1.CreateProvider(Type dataServiceType,Object System.DataModel上的dataSourceInstance,DataServiceConfiguration& configuration)在System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke上的SyncInvokeProcessRequestForMessage(Object,Object [],Object [])上的System.Data.Services.DataService 1.EnsureProviderAndConfigForRequest() at System.Data.Services.DataService 1.ProcessRequestForMessage(Stream messageBody)在System.ServiceModel的System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)处的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)处的对象实例,Object []输入,Object []和输出)。 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2上的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)中的Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) ageRpc&安培; rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

2 个答案:

答案 0 :(得分:0)

问题出现在“DataServiceConfiguration”中。错误是“'字典中没有给定的密钥”。

在大多数情况下,当我遇到这种情况时,配置中缺少某些内容。程序将配置文件中的信息读入字典,然后尝试查找密钥,并获取未找到密钥的异常。

答案 1 :(得分:0)

它可能是实体框架模型的连接字符串。确保在Web应用程序配置文件中有它。