安装MySQL Connector .NET后ASP.Net MVC4配置错误

时间:2014-10-04 04:38:19

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我正在创建一个MVC4 Web应用程序项目。当我使用空项目并只是在浏览器上运行它时工作正常。但问题是当我尝试创建一个Internet应用程序项目而不是Empty项目时。一旦我创建了互联网应用程序项目,当试图在浏览器上运行它时,它显示以下配置错误。我明白这是与MySQL连接器程序集引用相关的内容。以下是错误。

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.

7 个答案:

答案 0 :(得分:42)

当您安装MySQL .NET Connector 6.9.4(可能还有其他版本)时会发生这个令人讨厌的错误,因为如果您在安装过程中没有取消选中“Web Providers”,它会在您的machine.config中写入,这会导致您出现此错误。在应用任何这些步骤之前,请务必阅读整个答案,以便从必须开始的地方开始。

其他建议的真正问题在于,如果你没有在每个项目中使用MySQL来添加对MySQL dll的引用来缓解每个项目中的问题都不是一个选择。使用ASP.NET的每个项目都需要它,因为安装程序在机器配置中添加了行!

正确解决问题:

  1. 启动安装程序,然后单击“更改”
  2. 然后完全删除“Web提供商”部分。
  3. 这将删除machine.config中的声明(我在安装程序中发现了一件可怕的事情,但安装程序在没有任何通知的情况下创建它们)。
  4. 之后,最好检查一下您可以找到here的机器配置。并确保它不会破坏32 and 64 machine configs
  5. 当您的机器配置清除时,将MySql.Web程序集添加到您的项目中,并在项目web.config中添加MySQLMembershipProvider声明 - 标准程序。
  6. 享受MySQL连接器的全新安装。
  7. 但如果你这样做,你可能会尝试添加Ado NET实体数据模型,对吧?如果是这种情况,很可能您没有在向导中看到MySQL作为可用数据源的选项。这是因为从版本6.7开始安装MySQL Connector .NET时,它将不再自动register as DDEX provider

    要解决此问题,您必须从here下载一个专门为MySQL和.NET提供的单独安装程序,或直接从here.下载Visual Studio集成插件

    确定在上述任一安装程序的安装向导中检查 Visual Studio集成连接器

答案 1 :(得分:5)

这个解决方案对我有用:

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

我认为他们忘记将文件MySql.Web放入de GAC(全局程序集缓存)

答案 2 :(得分:4)

- 打开MySQL安装程序
- 单击右侧的删除选项卡 - 检查与.Net相关的所有事情(如连接器)
- 点击删除按钮
- 关闭并重新打开视觉工作室
-Upvote Ognyan Dimitrov的回答

答案 3 :(得分:4)

还有另一个解决方案:我手动打开了machine.config并注释掉了<Sitemap>部分(它几乎位于文件的底部)。将其保存为管理员和violá。有用。

使用站点地图的解决方案完好无损,无需触摸它们,我需要使用MySQL连接器的解决方案也按预期工作。

答案 4 :(得分:1)

最后我自己解决了它,这是一个小解决方案。只需添加对Web.Mysql dll文件的引用,现在它可以正常工作。

答案 5 :(得分:0)

我知道这是前一段时间的问题,但对我有用的是为我的项目添加MySql.DataMySql.Web引用。

答案 6 :(得分:-1)

只需安装最新的MySql .Net Connector并选择&#39; Complete&#39;安装,它将解决您的问题。