Ошибка EF4: невозможно загрузить указанный ресурс метаданных

Я только что развернул приложение ASP.NET MVC 2 с помощью EF 4 и получаю следующую ошибку:

Unable to load the specified metadata resource.

На моей локальной машине все работает без ошибок. Эта ошибка возникает только сейчас, когда я развернулся на сервере. У меня есть файл модели данных enity в MyProject.EntityModel. Я использовал генератор сущностей POCO для разделения контекста и сущностей. Эти 2 находятся в другом проекте под названием MyProject.Entities. У меня есть строки подключения в app.config в двух проектах точно такие же. Строка подключения в файле web.config в моем приложении MVC также одинакова. Я не уверен, почему это вызывает у меня проблемы? Я также запускаю приложение в 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()

Любой совет будет принят во внимание.

Спасибо.


person Brendan Vogt    schedule 26.10.2010    source источник
comment
возможный дубликат MetadataException: невозможно загрузить указанный ресурс метаданных   -  person Alex Angas    schedule 19.01.2012
comment
ПРИМЕЧАНИЕ. У меня была такая же проблема с использованием EF6, поэтому проблема все еще актуальна.   -  person qxotk    schedule 30.06.2016


Ответы (2)


Взгляните на этот вопрос, проблема, похоже, та же.

person Devart    schedule 26.10.2010
comment
Нет, это не работает. Я думаю, что что-то не так с установкой. Если я просто сброшу весь веб-сайт с моего локального компьютера на сервер, тогда он сработает. Если я делаю это через установку, я получаю сообщение об ошибке. Он отлично работает и локально. - person Brendan Vogt; 26.10.2010
comment
@Devart Я рекомендую вам вырезать соответствующую часть вопроса (или, что еще лучше, ответ на этот вопрос) в вашем ответе здесь. - person qxotk; 30.06.2016

Я нашел решение, потому что у меня была такая же проблема. У меня была эта проблема, потому что я переместил свой .edmx в другую папку, и мне пришлось изменить пространство имен, поэтому, когда я запускаю свой проект, появляется эта ошибка.

Я решил свою проблему, изменив строку подключения, добавив пространство имен «Модель» (имя папки) в каждое из трех мест, где изменилась папка.

    <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" />
person icalderond    schedule 16.03.2016