Asp.net 无法加载mysql.web程序集

Asp.net 无法加载mysql.web程序集,asp.net,mysql,asp.net-mvc-3,Asp.net,Mysql,Asp.net Mvc 3,我正在用ASP.net MVC3制作一个web应用程序。我最终希望使用roleprovider和登录表单使用的身份验证。所以我有这个代码: <authentication mode="Forms"> <forms loginUrl="~/Home/Login" timeout="2880" /> </authentication> <roleManager enabled="true" defaultProvider="MyRoleProvider

我正在用ASP.net MVC3制作一个web应用程序。我最终希望使用roleprovider和登录表单使用的身份验证。所以我有这个代码:

<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>
此代码显然位于my web.config中

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

无法加载文件或程序集MySql.Web,版本=6.7.4.0,区域性=中性,PublicKeyToken=c5687fc88969c44d,或无法加载其中一个依赖项。系统找不到给定的文件。**请注意,这大致是从荷兰语翻译过来的,错误最初是荷兰语


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

意识到这是老问题,但如果以后再看,我发现的是原因/解决方案

我必须在我的常规.NETWeb服务器数据库和同一台机器上的web服务器上做一些MySQL工作,所以我使用了MySQL安装程序。那个小傻瓜似乎已经去帮我更新了我的.NET machine.config,太好了,所以它的连接器可以很好地与.NET配合使用。愚蠢的安装程序。无论如何,当我去使用一个.NET/SQL Server应用程序时,没有连接到MySQL,我得到了同样的错误

很容易修复,你的MySQL应用程序应该仍然可以正常工作。只需在相应的.NET FramWork machine.config中注释掉MySQL引用

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

下面的链接更详细:


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

仔细阅读错误信息,这些信息提供了纠正这种情况的有用细节。 我不会更改machine.config文件。 正如它所说的,应用程序找不到对程序集MySql.Web的引用,它试图引用的版本是version=6.7.4.0。 根据您安装MySql的路径,您将能够找到正确的程序集文件,例如:C:\Program files\MySql\Connector NET 6.7.4\assembly\v4.0\MySql.Web.dll 将C:\Program Files\MySQL\Connector NET 6.7.4\Assembly\v4.0\MySQL.Web.dll文件复制到bin文件夹。我会将C:\Program files\MySQL\Connector NET 6.7.4\Assembly\v4.0\文件夹中的所有文件复制到bin文件夹 希望这有帮助!
谢谢

我对这个问题的解决方案,因为我遇到了同样的问题:


只要添加对MySql.Web的引用,它就会运行。

我通过运行MySql安装程序并更新到可用的最新文件来解决这个问题。

另一个解决方案:

检查web应用程序的应用程序池使用的.NET版本。这里我们考虑的版本是2。
转到文件夹C:\Program Files x86\MySQL\Connector NET 6.7.4\Assembly\v2.0作为.NET的初学者,我也经历过同样的情况

但这是一个非常简单的步骤

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

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


谢谢

我一直在寻找答案,我找到了适合我的解决方案

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

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


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

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


有关升级最新版本和解决此类问题的详细信息,请参见:[ASP.NET with MySQL:Configuration Error MySQL.Web.v20][1]

在Nuget管理器控制台下运行

PM>安装程序包MySql.Web

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


然后,使用此新版本更改web.config中的任何其他版本。这很有效。

您的项目是否引用了MySql.Web?如果是,是否在GAC中?如果没有,是否设置为复制本地?我真的不知道。。我曾经添加过一个名为mysql.data.dll的引用。什么是GAC?GAC是全局程序集缓存。当应用程序依赖于外部库时,将使用GAC和当前执行文件夹解析引用。如果您已经安装了MySql provider for.NET,那么它已经安装,并且DLL位于一个众所周知的位置,但不在GAC中。您的项目可以引用该DLL,但需要在生成时复制引用。我知道这是一个初学者的错误,但我也犯了同样的错误,我花了10-15分钟才注意到我根本没有安装MySQL的.NET连接器。。。我之前使用的是VS 2012 Express,我认为它不兼容,所以我从未费心安装它!一旦我这么做了,我的工作就很有魅力。确实是个小傻瓜。检查Sunny提供的答案,可能比这种方法更适合每种情况。jp2code对这个答案的评论指出,更改machine.config意味着您已经有了一个与特定安装v绑定的解决方案
这是最好的答案。这一切都是由于那个仍然存在严重缺陷的安装。宾果!这就是我所需要的,因为我在这台电脑上有其他与MySql集成的应用程序。如果我像bubson bropa的回答中那样注释掉引用,那么这些应用程序在我下次重新启动之前可能会正常工作——让我挠头,想知道它们为什么停止工作。my machine.config不可编辑?不幸的是,我安装了connector 6.10.1.0,然后回滚到6.9.9,在machine.config中仍然显示6.10.1.0versions@Samra:可能的情况是未删除配置文件。您可以尝试删除与连接器版本6.10.1.0相关的所有文件,然后重新安装6.9.9。希望能成功!我做了一个6.10.1的未安装,它现在可以工作了…愚蠢的是,我以前没有想到过
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config