Не удалось найти requested.Net поставщик данных Framework. Он не может быть установлен

после завершения ASP.NET MVC 3 (найти здесь), Я попытался опубликовать приложение в интернете. Я связался с хостинговой компанией, чтобы убедиться, что можно разместить приложения MVC 3. Но мне пришлось развернуть приложение (dll-файлы). Поэтому, выполнив несколько шагов на блог hanselmans, Я застрял на следующие ошибки:

не удалось найти запрошенного поставщика данных .Net Framework. Он не может быть установлен. Описание: необработанное исключение произошел во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительных сведений об ошибке и где было задано в коде.

Сведения Об Исключении: System.ArgumentException: не удалось найти запрошенный поставщик данных .Net Framework. Он не может быть установлен.

Ошибка Источник:

необработанное исключение во время выполнения текущего веб-запроса. Информация о происхождении и расположение исключение можно определить с помощью трассировки стека исключений ниже.

Трассировка Стека:

[ArgumentException: не удается найти запрошенные данные .Net Framework Поставщик. Он не может быть установлен.]
Система.Данные.Общий.DbProviderFactories.GetFactory(Строка providerInvariantName) +1420503
Система.Данные.Сущность.Внутренний.LazyInternalConnection.TryInitializeFromAppConfig (Строка имя) +362
Система.Данные.Сущность.Внутренний.LazyInternalConnection.Initialize () +49
Система.Данные.Сущность.Внутренний.LazyInternalConnection.get_ConnectionHasModel() Система +10.Данные.Сущность.Внутренний.LazyInternalContext.InitializeContext() Система +265.Данные.Сущность.Внутренний.InternalContext.GetEntitySetAndBaseTypeForType (Тип атрибутом entitytype) +17
Система.Данные.Сущность.Внутренний.В LINQ.InternalSet1.Initialize() +62
System.Data.Entity.Internal.Linq.InternalSet
1.get_InternalContext() Система +15.Данные.Сущность.Инфраструктура.DbQuery1.System.Linq.IQueryable.get_Provider() +37 System.Linq.Queryable.OrderByDescending(IQueryable1 Источник, Выражение1 keySelector) +66
MvcMusicStore.Controllers.HomeController.GetTopSellingAlbums(Int32 count) +420 MvcMusicStore.Controllers.HomeController.Index() +47
lambda_method(Closure , ControllerBase , Object[] ) +40
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary
2 параметра) +188
Система.Сеть.В MVC.ControllerActionInvoker.InvokeActionMethod (ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary ' 2 параметров) +27

любая помощь приветствуется.

5 ответов


по моему опыту, эта ошибка означает, что значение в строке подключения в web.config либо неверен, либо провайдер буквально не установлен. Если providerName установлено значение System.Data.SqlServerCe.4.0 (SQL Server Compact), что не редкость в разработке, я могу гарантировать, что он не установлен на вашем веб-узле; он используется только внутри Visual Studio для разработки. Вероятно, вам просто нужно изменить его на реального поставщика SQL Server: System.Data.SqlClient.


Я решил эту проблему.

Я нахожу место в providerName. Таким образом, .net framework не может estblish строку подключения с базой данных.

проверьте значение атрибута тега connectionString. ваше имя providerName может быть недостаточно четко определено. не допускайте пробелов и дополнительных символов chack в значении providerName.


другая точка данных...

Я работаю с Oracle и Entity Framework. Я установил Оракл ODP.NET управляемый драйвер чтобы получить эту проблему. В Диспетчере пакетов NuGet введите

Install-Package Oracle.ManagedDataAccess

он обновит приложение.config с соответствующей информацией о сборке и DbProviderFactories. Я использую VS 2015, Entity Framework 6. У меня также установлены инструменты разработчика Oracle.


я столкнулся с аналогичной проблемой .. и для этого есть очень забавное решение .. Просто посмотрите на свою ConnectionString - если это то же самое, что вы использовали для другого ASP.Net apps, тогда этого не должно быть... Entity Framework имеет совсем другой случай

<add name="EmployeeContext" connectionString="Server=.\SQLEXPRESS;Database=DB1;User Id=user1;password=password1;" providerName="System.Data.SqlClient**;**" />

изменить его, чтобы...

<add name="EmployeeContext" connectionString="Server=.\SQLEXPRESS;Database=DB1;User Id=user1;password=password1;" providerName="System.Data.SqlClient"/>

можете ли вы определить разницу .. только один маленький - нет"; " в конце ProviderName .. Да, и это имеет значение .. надо же в одну и ту же копию ProviderName, хотя я не проверил чувствительность к регистру. Но это решило мою проблему


ошибка была идеальной, и комментарии выше были хорошими, но в моем случае я буквально написал поставщика неправильно в интернете.конфигурационный файл: