无法找到所需的.NET Framework数据提供。 它可能没有安装(Unable to fin

2019-08-31 21:12发布

完成了ASP.NET MVC 3(后发现这里 ),我试着在网上发布的应用程序。 我的托管公司联系,以确保如果有可能举办MV​​C 3应用程序。 但是,我不得不斌部署(dll文件)的应用程序。 所以,以下一些步骤后hanselmans博客 ,我被陷在以下错误:

无法找到所需的.NET Framework数据提供。 它可能没有安装。 说明:在当前Web请求的执行过程中发生未处理的异常。 请检查堆栈跟踪有关该错误它起源于代码的详细信息和。

异常详细信息:System.ArgumentException:无法找到所请求的.NET Framework数据提供。 它可能没有安装。

源错误:

在当前web请求的执行过程中生成未处理的异常。 有关异常原因和发生位置的信息可以使用异常堆栈跟踪下面来识别。

堆栈跟踪:

[ArgumentException的:无法找到所请求的.NET Framework数据提供。 它可能没有安装。]
System.Data.Common.DbProviderFactories.GetFactory(字符串providerInvariantName)1420503
System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(字符串名称)362
System.Data.Entity.Internal.LazyInternalConnection.Initialize()+49
System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel()+10 System.Data.Entity.Internal.LazyInternalContext.InitializeContext()+265 System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(类型的EntityType)+17
System.Data.Entity.Internal.Linq.InternalSet 1.Initialize() +62
System.Data.Entity.Internal.Linq.InternalSet
1.Initialize() +62
System.Data.Entity.Internal.Linq.InternalSet
1.Initialize() +62
System.Data.Entity.Internal.Linq.InternalSet
1.get_InternalContext()15 System.Data.Entity.Infrastructure.DbQuery 1.System.Linq.IQueryable.get_Provider() +37 System.Linq.Queryable.OrderByDescending(IQueryable 1源,表达式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
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
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
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary`2参数)27

任何帮助表示赞赏。

Answer 1:

从我的经验,错误意味着价值providerName在你的web.config连接字符串属性为不正确,或提供字面上没有安装。 如果您providerName设置为System.Data.SqlServerCe.4.0 (SQL Server精简),这是并不鲜见的发展,我可以向你保证,这不是你的虚拟主机上安装; 它只是使用Visual Studio的发展中。 你可能只是需要将其更改为一个真正的SQL Server提供: System.Data.SqlClient



Answer 2:

我解决了问题。

我找到的providerName的空间。 所以,.NET框架是不是能够estblish连接字符串与数据库。

请检查您的connectionString标记属性值。 你的providerName很可能是没有定义的。 寻找任何空格(如命名不允许任何)和价值的providerName检查额外的字符。



Answer 3:

另一个数据点...

我与甲骨文和实体框架工作。 我安装了Oracle ODP.NET,管理驱动程序通过这个问题来获得。 在NuGet包管理器中输入

Install-Package Oracle.ManagedDataAccess

它会与相应的装配信息和DbProviderFactories更新App.config中。 我使用VS 2015年,实体框架6.我也有安装了Oracle开发工具。



Answer 4:

我面对类似的问题..并没有为该很有趣的解决方案..只要看着你的ConnectionString - 如果是相同的,你已经使用了你的其他ASP.Net应用程序,那么它不应该是...实体框架有一个不同的情况下,共

<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的同一个副本,虽然我还没有检查的情况下的灵敏度。 但是,这解决了我的问题



Answer 5:

错误是完美的,上面的意见是好的,但在我的情况下,我从字面上拼写错误提供商在web.config文件:System.Data.SqlClinetSystem.Data.SqlClient的



文章来源: Unable to find the requested .Net Framework Data Provider. It may not be installed