【问题标题】:Can't load mysql.web assembly无法加载 mysql.web 程序集
【发布时间】:2013-07-02 21:53:28
【问题描述】:

我正在使用 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 或无法加载依赖项之一。系统找不到给定的文件。 ** 请注意,这是从荷兰语大致翻译过来的,错误最初是荷兰语。

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

【问题讨论】:

  • 你的项目有没有引用MySql.Web?如果是这样,它是否在 GAC 中?如果不是,是否设置为复制本地?
  • 我真的不知道.. 我确实添加了一个名为 mysql.data.dll 的引用。什么是 GAC?
  • GAC 是全局程序集缓存。当应用程序依赖于外部库时,将使用 GAC 和当前执行文件夹来解析引用。如果您已经安装了用于 .NET 的 MySql 提供程序,则它已安装并且 DLL 位于众所周知的位置,但不在 GAC 中。您的项目可以引用该 DLL,但您需要在构建时复制该引用。可以在here 找到有关装配定位过程的快速入门
  • 我知道这是一个初学者的错误,但我得到了同样的错误,我花了 10-15 分钟才注意到我根本没有安装 MySQL 的 .NET 连接器......我使用的是 VS 2012 Express 之前(我不相信它是兼容的)所以我从来没有费心安装它!一旦我这样做了,就像一个魅力一样工作。

标签: asp.net mysql asp.net-mvc-3


【解决方案1】:

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

我必须在我的常规 .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

【讨论】:

  • 确实是个小傻瓜。
  • 检查 Sunny 提供的答案,可能比这种方法更适合每种情况。 jp2code 对该答案的评论指出,更改 machine.config 意味着您有一个与 Visual Studio 的特定安装相关的解决方案。
【解决方案2】:

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

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

【讨论】:

  • BINGO! 这正是我所需要的,因为我在这台 PC 上还有其他与 MySql 集成的应用程序。如果我要像 bubson bropa 的答案那样注释掉引用,那么这些应用程序可能会一直正常工作,直到我下次重新启动 - 让我摸不着头脑,想知道他们为什么停止工作.
  • 我的 machine.config 不可编辑?不幸的是,我安装了连接器 6.10.1.0,然后回滚到 6.9.9,在 machine.config 中它仍然显示 6.10.1.0 版本
  • @Samra:可能的情况是它没有删除配置文件。您可以尝试删除所有与 Connector 版本 6.10.1.0 相关的文件并重新安装 6.9.9。希望有效!
  • 我卸载了 6.10.1,现在它可以工作了……很傻,我之前没想到
【解决方案3】:

尝试重新安装 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/

【讨论】:

  • 这是最好的答案。这一切都归功于那个仍然存在严重缺陷的安装。
【解决方案4】:

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

  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 文件夹)

希望这会有所帮助! 谢谢

【讨论】:

    【解决方案5】:

    另一种解决方案:

    • 检查 Web 应用程序的应用程序池使用的 .NET 版本。这里我们认为版本是 2.0
    • 转到文件夹 C:\Program Files (x86)\MySQL\Connector NET 6.7.4\Assemblies\v2.0(
    • 将 dll 从上一个文件夹复制到 C:\Windows\assembly

    【讨论】:

      【解决方案6】:

      我设法通过运行 MySQL 安装程序并更新到可用的最新文件来解决此问题。

      【讨论】:

        【解决方案7】:

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

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

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

        添加 mysql.web 程序集后,就可以摆脱这个错误了。

        谢谢!!

        【讨论】:

          【解决方案8】:

          我一直在寻找答案,我在 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
          

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

          【讨论】:

            【解决方案9】:

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

            在 Nuget Manager 控制台下运行

            PM&gt; Install-Package MySql.Web

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2021-03-02
              • 1970-01-01
              • 1970-01-01
              • 2011-07-24
              • 1970-01-01
              • 1970-01-01
              • 2012-01-10
              相关资源
              最近更新 更多