Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.Net MVC4 configuration error after installing MySQL Connector .NET

I'm creating a MVC4 web application project.When i'm using empty project and simply run it on browser it works fine.But the problem is when i'm trying to create a Internet application project instead of Empty project.Once i created internet application project and when trying to run it on browser it shows following configuration error.As i understood it's something related to MySQL connector assembly reference.Anyhow following is the error.

Server Error in '/' Application.

Configuration Error

Description: An error occurred during the processing of a configuration file required to service    this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Could not load file or assembly 'MySql.Web.v20, Version=6.9.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The system cannot find the file specified.

Source Error: 


Line 265:      <providers>
Line 266:        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
Line 267:        <add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web.v20, Version=6.9.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Clear" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
Line 268:      </providers>
Line 269:    </membership>

Source File: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config    Line: 267 

Assembly Load Trace: The following information can be helpful to determine why the assembly 'MySql.Web.v20, Version=6.9.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' could not be loaded.
like image 940
CodeCanyon Avatar asked Oct 04 '14 04:10

CodeCanyon


5 Answers

This nasty error occurs when you install MySQL .NET Connector 6.9.4 (probably other versions too) because if you do not uncheck "Web Providers" during the installation it writes in your machine.config which brings you to this error. Be sure to read the entire answer before applying any of these steps in order to start from where you have to start.

The real problem with other suggestions is that if you are not using MySQL in every project to just add a reference to MySQL dll to mitigate the problem in every project is not an option. Every project of yours that uses ASP.NET will require it because of the rows added in machine config by the installer!

To solve the problem properly :

  1. Start the installer and click "Change"
  2. then remove the "Web Providers" section entirely.
  3. This will remove the declarations from your machine.config (which I find a horrible thing to do in installer but the installer creates them without any notification anyway).
  4. After that it is a good idea to check you machine config which you can find here. And be sure that it did not spoil both 32 and 64 machine configs.
  5. When your machine config is clear add the MySql.Web assembly to your project and add the MySQLMembershipProvider declaration in your project web.config - the standard procedure.
  6. Enjoy the clean installation of MySQL connector.

But if you do it that way you may try to add Ado NET Entity Data model after, right? If that is the case it is most likely that you do not see the option for MySQL as an available data source in the wizard. This is because from version 6.7 when you install MySQL Connector .NET it will no longer register as DDEX provider automatically.

To correct this issue you have to download a separate installer provided especially for MySQL and .NET from here or the just Visual Studio integration plug-in directly from here.

Be sure to check the Visual Studio integration and connector during the installation wizard on either of the above installers.

like image 99
Ognyan Dimitrov Avatar answered Oct 20 '22 00:10

Ognyan Dimitrov


This solution worked for me:

<siteMap>
      <providers>
        <remove name="MySqlSiteMapProvider"/>
      </providers>
    </siteMap>

I think they forgot to put the file MySql.Web in de GAC (Global Assembly Cache)

like image 36
Rob Janssen Avatar answered Oct 20 '22 01:10

Rob Janssen


-Open the MySQL installer
-Click the remove tab to your right.
-Check all the things that are related to .Net (like connectors)
-Click remove button
-Close and reopen visual studio
-Upvote Ognyan Dimitrov's answer

like image 43
Tosh Avatar answered Oct 20 '22 02:10

Tosh


There is another solution: I manually opened machine.config and commented out section <Sitemap> (it's almost on the bottom of the file). Save it as the administrator and violá. It works.

Solutions using sitemaps are intact without having to touch them and my solutions where I need to use the MySQL connector work as expected as well.

like image 33
walther Avatar answered Oct 20 '22 00:10

walther


finally I have solved it my own and it was a small solution. Just have to add a reference to Web.Mysql dll file and now it works properly.

like image 30
CodeCanyon Avatar answered Oct 20 '22 01:10

CodeCanyon