1

我在将我的网站 (asp.net mvc3) 连接到 MySQL 时遇到问题。

本地主机正在工作,但在服务器上我收到以下错误:

错误:无法找到数据提供者。请求的网络框架。也许它没有安装。

Stacktrace: [ArgumentException:指定的存储库提供程序在配置中未找到或无效。]
System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +11468668
System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString) + 575
System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(字符串名称,AppConfig 配置)+144 ... +21 System.Data.Entity.Infrastructure.DbQuery 1.System.Linq.IQueryable.get_Provider() +44 System.Linq.Queryable.Where(IQueryable1 源,表达式1 predicate) +85 AcusticoA3.Controllers.HomeController.Index() +978 lambda_method(Closure , ControllerBase , Object[] ) +79
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary
2 参数)+264
System.Web.Mvc。 ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 parameters) +39
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +124 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func
1续)+727142 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext,IList 1 filters, ActionDescriptor actionDescriptor, IDictionary2参数)+309 DisplayClasse.b _d() +52
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.<>c_ DisplayClassb.b _5() +62 System.Web.Mvc.Async.<>c_ DisplayClass1.b _0() +15 System.Web.Mvc.<>c_ System.Web.CallHandlerExecutionStep.System.Web .HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& 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=&quot;server=[HOST];user id=[USER]; password=[PASSWORD]; database=[DATABASE]&quot;" providerName="System.Data.EntityClient"/>   </connectionStrings>
4

2 回答 2

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>

请记住更改提供程序版本。

于 2013-10-02T02:49:30.287 回答
0

您还可以通过将“Copy Local”设置为True来告诉编译器将这些文件复制到 bin 目录中:

在此处输入图像描述

于 2014-03-03T08:05:48.680 回答