无法找到请求的.Net Framework数据提供程序.它可能没有安装

Tas*_*sto 6 asp.net deployment asp.net-mvc asp.net-mvc-3

完成ASP.NET MVC 3(在这里找到)后,我尝试在线发布应用程序.我联系了托管公司,以确定是否可以托管MVC 3应用程序.但我不得不部署(dll文件)应用程序.因此,在hanselmans博客执行了一些步骤后,我遇到了以下错误:

无法找到请求的.Net Framework数据提供程序.它可能没有安装.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

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

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

堆栈跟踪:

[ArgumentException:无法找到请求的.Net Framework数据提供程序.它可能未安装.]
System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)+1420503
System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name)+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(Type entityType)+ 17
System.Data.Entity.Internal.Linq.InternalSet 1.get_InternalContext()+15 System.Data.Entity.Infrastructure.DbQuery 1 source,Expression 2 parameters)+188 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor,IDictionary`2参数)+271.Initialize() +62
System.Data.Entity.Internal.Linq.InternalSet
1.System.Linq.IQueryable.get_Provider() +37 System.Linq.Queryable.OrderByDescending(IQueryable1 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

任何帮助表示赞赏.

Chr*_*att 12

根据我的经验,该错误意味着providerNameweb.config中连接字符串上的属性值不正确,或者字面上未安装提供程序.如果您providerName的设置为System.Data.SqlServerCe.4.0(SQL Server Compact),这在开发中并不少见,我可以向您保证,它未安装在您的Web主机上; 它仅在Visual Studio内部用于开发.您可能只需要将其更改为真正的SQL Server提供程序:System.Data.SqlClient.