安装MySQL连接器.Net后出现ASP.Net MVC4配置错误
本文关键字:Net MVC4 ASP 配置 错误 MySQL 连接器 安装 | 更新日期: 2023-09-27 18:25:35
我正在创建一个MVC4 web应用程序项目。当我使用空项目并简单地在浏览器上运行它时,它工作得很好。但问题是当我试图创建一个互联网应用程序项目而不是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.
安装MySQL.NET Connector 6.9.4(可能还有其他版本)时会出现此严重错误,因为如果在安装过程中不取消选中"Web提供程序",它会写入您的machine.config中,从而导致此错误。在应用这些步骤之前,一定要阅读完整的答案,以便从你必须开始的地方开始。
其他建议的真正问题是,如果你不是在每个项目中都使用MySQL,那么仅仅添加对MySQL dll的引用来缓解每个项目中的问题是不可行的。您的每个使用ASP.NET的项目都需要它,因为安装程序在机器配置中添加了行!
正确解决问题:
- 启动安装程序并单击"更改"
- 然后完全删除"Web提供商"部分
- 这将从你的machine.config中删除声明(我发现在安装程序中这样做很可怕,但安装程序在没有任何通知的情况下创建它们)
- 在那之后,最好检查一下你的机器配置,你可以在这里找到。请确保它不会破坏32和64机器配置
- 清除计算机配置后,将MySql.Web程序集添加到项目中,并在项目Web.config中添加MySQLMembershipProvider声明-这是标准过程
- 享受MySQL连接器的干净安装
但如果你这样做,你可能会尝试在之后添加Ado NET实体数据模型,对吧?如果是这种情况,很可能您在向导中没有看到MySQL作为可用数据源的选项。这是因为从6.7版开始,当您安装MySQL连接器.NET时,它将不再自动注册为DDEX提供程序。
要更正此问题,您必须从这里下载专门为MySQL和.NET提供的单独安装程序,或者直接从这里下载Visual Studio集成插件。
请确保在上述任一安装程序的安装向导中检查Visual Studio集成和连接器。
这个解决方案对我有效:
<siteMap>
<providers>
<remove name="MySqlSiteMapProvider"/>
</providers>
</siteMap>
我想他们忘了把MySql.Web文件放在de GAC(全局程序集缓存)中
-打开MySQL安装程序
-单击右侧的删除选项卡
-检查所有与.Net相关的内容(如连接器)
-单击删除按钮
-关闭并重新打开visual studio
-支持Ognyan Dimitrov的回答
还有另一个解决方案:我手动打开machine.config并注释掉了<Sitemap>
部分(它几乎在文件的底部)。保存为管理员和中提琴。它有效。
使用站点地图的解决方案是完整的,无需触摸它们,我的解决方案在需要使用MySQL连接器的地方也能正常工作。
最后我自己解决了它,这是一个小的解决方案。只需添加对Web.Mysql
dll文件的引用,现在它就可以正常工作了。
我知道不久前有人问过这个问题,但对我有效的是将MySql.Data
和MySql.Web
引用添加到我的项目中。
只要安装最新的MySql.Net连接器并选择"完成"安装,它就会解决您的问题。