Не удалось найти запрошенный поставщик данных .Net Framework.Возможно, он не установлен.- при следовании учебнику mvc3 asp.net - PullRequest
45 голосов
/ 29 июля 2011

Я следую учебному пособию по приложению 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 ]

31 голосов
/ 10 августа 2012

Мне удалось решить проблему, подобную этой, в 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>
16 голосов
/ 25 апреля 2012

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

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

10 голосов
/ 05 апреля 2013

Добавьте эти строки в ваш файл 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 или любого другого провайдера базы данных, к которому вы подключаетесь.

1 голос
/ 10 июля 2017

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

0 голосов
/ 07 октября 2014

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

add name = "MusicStoreEntities" connectionString = "source source =. \ SQLEXPRESS; Integrated Security = SSPI;database = MvcMusicStore; ID пользователя = sa; пароль = "providerName =" System.Data.SqlClient "/>

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

0 голосов
/ 12 марта 2014

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

0 голосов
/ 10 сентября 2012

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

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

Надеется, что это кому-то поможет ..

0 голосов
/ 18 июля 2012

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

...