我在将我的网站(asp.net mvc3)连接到MySQL时遇到问题。
Localhost正在运行,但在服务器上我收到以下错误:
错误:无法找到数据提供者。请求的网络框架。也许它没有安装。
Stacktrace: [ArgumentException:在配置中找不到指定的存储库提供程序或无效。]
System.Data.EntityClient.EntityConnection.GetFactory(字符串 providerString)+11468668
System.Data.EntityClient.EntityConnection.ChangeConnectionString(字符串 newConnectionString)+575
System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(字符串 name,AppConfig config)+144 ... +21 System.Data.Entity.Infrastructure.DbQuery1.System.Linq.IQueryable.get_Provider() +44 System.Linq.Queryable.Where(IQueryable
1个来源,表达式1 predicate) +85 AcusticoA3.Controllers.HomeController.Index() +978 lambda_method(Closure , ControllerBase , Object[] ) +79
2个参数)+264
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary2 parameters) +39
1续) +727142 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext,IList
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +124 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func1 filters, ActionDescriptor actionDescriptor, IDictionary
2个参数)+309
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName)+727076
System.Web.Mvc.Controller.ExecuteCore()+159
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +334 System.Web.Mvc。&lt;&gt; c_ DisplayClassb.b _5()+62 System.Web.Mvc.Async。&lt;&gt; c_ DisplayClass1.b _0()+15 System.Web.Mvc。&lt;&gt; c_ DisplayClasse.b _d()+52
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&amp; completedSynchronously)+288
我正在使用Mysql.connector 6.6.5.0和EntityFramework 5.0。
我的关系字符串:
<connectionStrings>
<add name="MyEntities" connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=MySql.Data.MySqlClient;provider connection string="server=[HOST];user id=[USER]; password=[PASSWORD]; database=[DATABASE]"" providerName="System.Data.EntityClient"/> </connectionStrings>
答案 0 :(得分:1)
我解决了。
只需将提供者dll放在bin文件夹中,然后在Web.config中进行设置:
<system.data>
<DbProviderFactories>
<clear />
<remove invariant="MySQL Data Provider"/>
<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.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories> </system.data>
请记住更改提供商版本。
答案 1 :(得分:0)
您还可以通过将“Copy Local”设置为 True 来告诉编译器将这些文件复制到bin目录中: