Не удалось найти запрошенный поставщик данных.Net Framework. Это не может быть установлено. - при следовании учебнику mvc3 asp.net

Я следую учебному руководству по приложению ASP.NET MVC 3 Music Store, но я застреваю в части 4: http://www.asp.net/mvc/tutorials/mvc-music-store-part-4. Мне постоянно говорят, что у меня не установлен поставщик данных SQL:

Точная ошибка:

System.ArgumentException was unhandled by user code
  Message=Unable to find the requested .Net Framework Data Provider.  It may not be installed.
  Source=System.Data
  StackTrace:
       at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
       at System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name)
       at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
       at System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel()
       at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
       at System.Data.Entity.Internal.InternalContext.Initialize()
       at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
       at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
       at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()
       at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at MusicApplication.Controllers.StoreController.Index() in C:\Users\Michelle\documents\visual studio 2010\Projects\MusicApplication\MusicApplication\Controllers\StoreController.cs:line 18
       at lambda_method(Closure , ControllerBase , Object[] )
       at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
       at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
  InnerException: 

Я добавил ссылку на System.Data.SqlServerCe - все еще есть та же ошибка. Любое руководство будет очень цениться

8 ответов

Решение

Мне удалось решить проблему, аналогичную этой в Visual Studio 2010, с помощью NuGet.

Выберите Инструменты> Диспетчер пакетов библиотеки> Управление пакетами NuGet для решения...

В диалоговом окне найдите "EntityFramework.SqlServerCompact". Вы найдете пакет с описанием "Позволяет использовать SQL Server Compact 4.0 с Entity Framework". Установите этот пакет.

Элемент, подобный следующему, будет вставлен в ваш файл web.config:

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
    <parameters>
      <parameter value="System.Data.SqlServerCe.4.0" />
    </parameters>
  </defaultConnectionFactory>
</entityFramework>

Я была такая же проблема. Я проверил версию System.Data.SqlServerCe в C:\Windows\ сборка. Это был 3.5.1.0. Так что я установил версию 4.0.0 по ссылке ниже (x86) и работает нормально.

http://www.microsoft.com/download/en/details.aspx?id=17876

Добавьте эти строки в ваш файл web.config:

<system.data>
    <DbProviderFactories>
               <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,  Version=6.6.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
    </DbProviderFactories>
</system.data>

Измените провайдера с MySQL на SQL Server или любого провайдера базы данных, к которому вы подключаетесь.

Эта ошибка в основном связана с несовместимостью архитектуры процессора с установленной платформой ei x86 против x64 Решение: перейдите в обозреватель решений> свойства проекта> вкладка "Компиляция"> "Дополнительные параметры компиляции". Там нужно изменить целевой процессор с X64 на X86. Сохраните новый параметр и перекомпилируйте его. решение. Я попробовал это, и это работало очень хорошо. Надеюсь, это поможет вам. Малек

У меня было то же самое, когда я следовал учебному пособию по MvcMusicStore в части 4, и заменил данную строку подключения следующим:

add name = "MusicStoreEntities" connectionString = "источник данных =.\SQLEXPRESS; Интегрированная безопасность =SSPI; база данных = MvcMusicStore; ID пользователя = sa; пароль =" providerName="System.Data.SqlClient"/>

Это сработало для меня.

Это случилось со мной, потому что я создал новый проект, который пытался использовать System.Web.ProvidersDefaultMembershipProvider для членства. Моя БД и приложение были настроены для использования System.Web.Security.SqlMembershipProvider вместо. Мне пришлось обновить провайдера и строку соединения (поскольку у этого провайдера, кажется, есть какие-то странные требования к строке соединения), чтобы заставить его работать.

В моем случае проблема была вызвана проблемой подключения к базе данных SQL. Я просто отключил, а затем снова подключил источник данных SQL из представления проекта. Я вернулся и бегу. Надеюсь, что это работает для всех.

У меня была проблема с SqlClient на WCF-сервисе. Моим решением было поместить эти строки в клиентский app.config

  <startup>
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
  </startup>

Надежды это помогает кому-то..

Другие вопросы по тегам