【问题标题】:EF4 error: Unable to load the specified metadata resourceEF4 错误:无法加载指定的元数据资源
【发布时间】:2016-07-01 05:15:07
【问题描述】:

我刚刚使用 EF 4 部署了我的 ASP.NET MVC 2 应用程序,我收到以下错误:

Unable to load the specified metadata resource.

在我的本地机器上运行良好,没有错误。只有当我部署到服务器时才会出现此错误。我在 MyProject.EntityModel 中有我的实体数据模型文件。我使用 POCO 实体生成器来分离我的上下文和实体。这 2 个位于另一个名为 MyProject.Entities 的项目中。我在 2 个项目中的 app.config 中的连接字符串完全相同。我的 MVC 应用程序的 web.config 中的连接字符串也是一样的。我不确定为什么这会给我带来问题?我还在 IIS(Windows 7 附带)中运行该应用程序,它运行良好。服务器上的 IIS 版本是 6(我认为)。以下是完整的错误信息:

InnerException
Message: Unable to load the specified metadata resource.
Source: System.Data.Entity
StackTrace: at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.LoadResources(String assemblyName, String resourceName, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)
at System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)
at System.Data.Metadata.Edm.MetadataArtifactLoader.Create(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)
at System.Data.Metadata.Edm.MetadataCache.SplitPaths(String paths)
at System.Data.Common.Utils.Memoizer`2.<>c__DisplayClass2.<Evaluate>b__0()
at System.Data.Common.Utils.Memoizer`2.Result.GetValue()
at System.Data.Common.Utils.Memoizer`2.Evaluate(TArg arg)
at System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections)
at System.Data.Objects.ObjectContext.RetrieveMetadataWorkspaceFromConnection()
at System.Data.Objects.ObjectContext..ctor(EntityConnection connection, Boolean isConnectionConstructor)
at MyProject.HolsboerBFGA.Entities.HolsboerBFGAEntities..ctor()
at MyProject.HolsboerBFGA.WebMVC2.Controllers.HomeController..ctor()

任何建议将不胜感激。

谢谢。

【问题讨论】:

标签: asp.net asp.net-mvc-2 entity-framework-4


【解决方案1】:

我找到了解决方案,因为我遇到了同样的问题。我遇到了这个问题,因为将我的 .edmx 移动到另一个文件夹并且我不得不更改命名空间,所以当我运行我的项目时会出现这个错误。

我通过更改连接字符串解决了我的问题,将命名空间“模型”(文件夹名称)添加到文件夹更改的 3 个位置中的每一个。

    <add name="connectionName" connectionString="metadata=res://*/Model.MyModel.csdl|res://*/Model.MyModel.ssdl|res://*/Model.MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=server;initial catalog=myDataBase;user id=us;password=***;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

【讨论】:

    【解决方案2】:

    看看this question,问题好像是一样的。

    【讨论】:

    • 不,它不起作用。我认为安装有问题。如果我只是将整个网站从本地 PC 转储到服务器,那么它就可以工作。如果我是通过安装完成的,那么我会收到错误消息。它在本地也能完美运行。
    • @Devart 我建议您在此处的答案中摘录问题的相关部分(或者更好的是,该问题的答案)。
    猜你喜欢
    • 2013-04-12
    • 2014-12-31
    • 2023-03-10
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    相关资源
    最近更新 更多