17

我正在使用 ASP.net MVC3 制作一个 Web 应用程序。我最终想使用登录表单使用的角色提供程序和身份验证。所以我有这个代码:

<authentication mode="Forms">
  <forms loginUrl="~/Home/Login" timeout="2880" />
</authentication>

<roleManager enabled="true" defaultProvider="MyRoleProvider">
  <providers>
    <add name="MyRoleProvider"
         type="StudentAdministratieProject.Authorisation.CustomRoleProvider"/>
  </providers>
</roleManager>

这段代码显然位于我的 web.config 中。

启动应用程序时出现的错误:

无法加载文件或程序集 MySql.Web,Version=6.7.4.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d 或无法加载依赖项之一。系统找不到给定的文件。** 请注意,这是从荷兰语大致翻译而来,错误最初是荷兰语。

有任何想法吗?我用谷歌搜索了很多,但找不到任何对我有帮助的东西!

4

9 回答 9

54

意识到这是旧的,但如果以后查看,这就是我发现的原因/解决方案。

我必须在我的常规 .NET Web 服务器(同一台机器上的数据库和 Web 服务器)上做一些 MySQL 工作,所以我使用了 MySQL 安装程序(http://dev.mysql.com/tech-resources/articles/mysql-installer- for-windows.html)。那个小傻瓜似乎已经为我更新了我的 .NET machine.config ,真好,所以它的连接器可以很好地与 .NET 配合使用。愚蠢的安装程序。无论如何,当我去使用 .NET / SQL Server 应用程序(与 MySQL 无关)时,我遇到了同样的错误。

足够简单的修复(并且您使用 MySQL 的应用程序应该仍然可以正常工作)。只需在适当的 .NET 框架 machine.config 中注释掉 MySQL 引用即可。

注意:错误所在的网页会告诉您哪个 machine.config 文件(和行号)有问题。

下面的链接更详细:

http://forums.asp.net/t/1928379.aspx

于 2013-09-27T20:29:48.870 回答
13

我对这个问题的解决方案和我一样有同样的问题:

只需添加对 MySql.Web 的引用即可。

于 2013-10-10T05:06:30.800 回答
4

尝试重新安装 MySQL .NET Connector 6.9.4,同时在安装过程中取消选中“Web Providers” -

在以下位置查看更多信息:[带有 MySQL 的 ASP.NET:配置错误 (MySql.Web.v20)][1] http://technowide.net/2014/11/07/asp-net-with-mysql-configuration-error/

于 2014-11-07T16:57:51.763 回答
2

我经历过同样的情况并设法通过这些步骤解决了问题,

  1. 仔细阅读错误信息,其中提供了有助于纠正这种情况的详细信息。
  2. 我不会更改 machine.config 文件。
  3. 正如它所说,应用程序找不到对程序集 MySql.Web 的引用,它试图引用的版本是 Version=6.7.4.0。
  4. 根据您安装 MySql 的路径,您将能够找到正确的程序集文件,例如:C:\Program Files\MySQL\Connector NET 6.7.4\Assemblies\v4.0\MySql.Web.dll
  5. 将 C:\Program Files\MySQL\Connector NET 6.7.4\Assemblies\v4.0\MySql.Web.dll 文件复制到 bin 文件夹。(我会将 C:\Program Files\MySQL\Connector NET 6.7.4\Assemblies\v4.0\ 文件夹中的所有文件复制到 bin 文件夹)

希望这可以帮助!谢谢

于 2013-09-29T15:16:39.487 回答
1

另一种解决方案:

  • 检查 Web 应用程序的应用程序池使用的 .NET 版本。这里我们认为版本是 2.0
  • 转到文件夹 C:\Program Files (x86)\MySQL\Connector NET 6.7.4\Assemblies\v2.0 (<-取决于您的版本)
  • 将 dll 从上一个文件夹复制到 C:\Windows\assembly
于 2014-01-16T12:55:52.123 回答
0

我设法通过运行 MySQL Installer 并更新到可用的最新文件来解决这个问题。

于 2014-01-13T10:39:58.593 回答
0

作为 .NET 的初学者,我也遇到了同样的情况。

但是很简单的一步就可以解决。

从解决方案资源管理器中选择引用。右键单击它,选择添加引用,从程序集列表中选择 mysql.web,然后添加它。

添加 mysql.web 程序集后,您可以摆脱此错误。

谢谢!!

于 2014-06-12T06:58:10.553 回答
0

我一直在寻找答案,我在fix-for-mysql-connectornet-693上找到了适合我的解决方案

您只需要从 MySql.Web.v20 的每个实例中删除“.v20”

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config

您可以在记事本中编辑文件(以管理员身份运行!)。

于 2014-10-29T12:37:40.190 回答
0

用于升级最新版本并解决此类问题;

在 Nuget Manager 控制台下运行

PM> Install-Package MySql.Web

这将为您下载最新的 MySql.Web。从项目引用中通过查看其属性找到 dll 版本。

然后,用这个新版本更改 web.config 中的任何其他版本。这行得通。

于 2016-02-10T20:28:17.723 回答