我刚刚使用EF 4部署了我的ASP.NET MVC 2应用程序,我收到以下错误:
Unable to load the specified metadata resource.
在我的本地计算机上运行良好且没有错误。现在,当我部署到服务器时,此错误才出现。我在MyProject.EntityModel中有我的enity数据模型文件。我使用POCO实体生成器来分隔我的上下文和实体。这两个项目位于另一个名为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()
任何建议都将受到赞赏。
感谢。
答案 0 :(得分:1)
我找到了解决方案,因为我遇到了同样的问题。我有这个问题,因为我的.edmx移动到另一个文件夹,我不得不更改命名空间,所以当我运行我的项目时出现此错误。
我通过更改连接字符串解决了我的问题,将名称空间“Model”(文件夹名称)添加到文件夹更改的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="data source=server;initial catalog=myDataBase;user id=us;password=***;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
答案 1 :(得分:0)
看看this question,问题似乎是一样的。