1

I'm having problems connecting my website (asp.net mvc3) to MySQL.

Localhost is working, but on the server I receive the following error:

Error: Unable to locate the Data Provider. Requested Net Framework. Maybe it is not installed.

Stacktrace: [ArgumentException: The repository provider specified is not found in the configuration or is not valid.]
System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +11468668
System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString) +575
System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name, AppConfig config) +144 ... +21 System.Data.Entity.Infrastructure.DbQuery1.System.Linq.IQueryable.get_Provider() +44 System.Linq.Queryable.Where(IQueryable1 source, Expression1 predicate) +85 AcusticoA3.Controllers.HomeController.Index() +978 lambda_method(Closure , ControllerBase , Object[] ) +79
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary
2 parameters) +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 continuation) +727142 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList1 filters, ActionDescriptor actionDescriptor, IDictionary2 parameters) +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.<>c_DisplayClassb.b_5() +62 System.Web.Mvc.Async.<>c_DisplayClass1.b_0() +15 System.Web.Mvc.<>c_DisplayClasse.b_d() +52
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288

I'm using Mysql.connector 6.6.5.0 and EntityFramework 5.0.

My connectionstring:

  <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
  • Can you post the implementation for MySql.Data.MySqlClient? And maybe try provider=System.Data.SqlClient instead? Commented Oct 1, 2013 at 2:14
  • "Unable to locate the Data Provide" likely means MySQL provider is not installed on the server, no? Commented Oct 1, 2013 at 2:18
  • Hi, this my code: using(var db = new MyEntities()){ // The error is happening here. ViewBag.BookData = (from t in db.book where t.Date >= currentData select t).Take(2); } Commented Oct 1, 2013 at 2:22
  • The provider is installed on server Commented Oct 1, 2013 at 2:23

2 Answers 2

1

I resolved.

Just put the provider dlls in the bin folder and do the setting in 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>

Just remember to change the provider version.

Sign up to request clarification or add additional context in comments.

Comments

0

You can also tell the compiler to copy these files in the bin directory, by setting "Copy Local" to True:

enter image description here

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.