2013-04-25 2 views
2

Когда я публикую мои ASP.NET MVC 4, EF 5,0, Code-First Project для тестирования или производственной среды следующее исключение происходит:указано поставщик магазин не может быть найден в конфигурации

(ошибка 0175: Указанный поставщик магазин не может быть найден в конфигурации, или не действует.)

[MetadataException: Das angegebene Schema ist ungültig. Fehler: 
(0,0) : Fehler 0175: Der angegebene Speicheranbieter kann nicht in der Konfiguration gefunden werden oder ist ungültig.] 
    System.Data.Metadata.Edm.Loader.ThrowOnNonWarningErrors() +57 
    System.Data.Metadata.Edm.StoreItemCollection.Init(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths, Boolean throwOnError, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, String& providerManifestToken, Memoizer`2& cachedCTypeFunction) +206 
    System.Data.Metadata.Edm.StoreItemCollection..ctor(IEnumerable`1 xmlReaders) +368 
    System.Data.Entity.Migrations.Extensions.XDocumentExtensions.GetStoreItemCollection(XDocument model, DbProviderInfo& providerInfo) +361 
    System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Diff(XDocument sourceModel, XDocument targetModel, String connectionString) +72 
    System.Data.Entity.Migrations.DbMigrator.IsModelOutOfDate(XDocument model, DbMigration lastMigration) +194 
    System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId) +328 
    System.Data.Entity.MigrateDatabaseToLatestVersion`2.InitializeDatabase(TContext context) +150 
    System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action) +66 

была создана база данных на сервере SQL, а также таблицы в базе данных.

В локальной среде dev все работает нормально. Я локально установил ту же версию MS SQL Express 2008 R2, что и при тестировании/производстве. И локально все работает.

Как я читал на других с той же ошибкой (в основном с базой данных MySQL), ошибка была исправлена ​​с включением двоичных файлов. Но для MSSQL нет специальных двоичных файлов для включения (я думаю). И база данных/таблицы создаются, поэтому доступ к SQL-серверу должен быть прекрасным.

Вот мой web.config для производства/тест:

<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="NameOfContext" connectionString="Server=ServerName\MSSQL;Database=DatabaseName;User Id=Username;Password=Password" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="webpages:Version" value="2.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="PreserveLoginUrl" value="true" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    </appSettings> 
... 
    <entityFramework> 
    <contexts> 
     <context type="NameOfContext, Application name"> 
     <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[NameOfContext, Application Name], [Name_App.Migrations.Configuration, Application Name]], EntityFramework, PublicKeyToken=b77a5c561934e089"> 
      <parameters> 
      <parameter value="NameOfContent" /> 
      </parameters> 
     </databaseInitializer> 
     </context> 
    </contexts> 
    </entityFramework> 
+1

Если он говорит, что процедура не может быть найдена, то либо требуемая процедура не существует, либо у пользователя нет разрешения на ее просмотр. В подобных ситуациях я использую SQL Profile, чтобы точно следить за тем, что происходит. Часто это дает вам много информации о том, что происходит, и ведет вас в правильном направлении. – mroach

+0

Хорошо, что такое профиль SQL? – IFY

+0

Я имел в виду SQL Profiler. Это утилита, которая поставляется с инструментами управления SQL Server. Он позволяет просматривать все действия на сервере, включая команды, которые выполняются. – mroach

ответ

0

Я «решил» проблему: я создал новый проект и не копируется весь код в новый проект, где проблема больше не появился. Возможно, это была проблема с автоматической миграцией. Хотя я запустил «update-database -targetmigration: 0» и воссоздал все миграции.

Смежные вопросы