2013-07-02 52 views
16

我正在用ASP.net MVC3制作一个Web应用程序。我最终希望使用登录表单使用的roleprovider和身份验证。所以我有这样的代码:无法加载mysql.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,版本= 6.7.4.0,文化=中性公钥= c5687fc88969c44d还是可以依赖的一个不会被加载。系统找不到给定的文件。 **请注意,这大致是从荷兰语翻译,错误最初是在荷兰语。

任何想法?我google了很多,但找不到任何帮助我的东西!

+0

您的项目是否有对MySql.Web的引用?如果是这样,它在GAC中吗?如果没有,是否设置为复制本地? –

+0

我真的不知道..我没有添加一个名为mysql.data.dll的引用。什么是GAC? – Kraishan

+0

GAC是全局程序集缓存。当应用程序对外部库具有依赖性时,将使用GAC和当前正在执行的文件夹来解析引用。如果您已经为.NET安装了MySql提供程序,则会安装它,并且该DLL位于众所周知的位置,但不在GAC中。您的项目可以引用该DLL,但您需要复制构建中的引用。大会定位过程的快速入门可以在这里找到(http://msdn.microsoft.com/en-us/library/aa720133.aspx) –

回答

51

意识到这是旧的,但万一它的后来看到,这是我发现的原因/解决方案。

我不得不在一般的.NET Web服务器(同一台机器上的db和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 framwework machine.config中注释掉MySQL引用即可。

注意:出现错误的网页会告诉你什么machine.config文件(和行号)是有问题的。下面

Link是更详细:

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

+0

这对我有用 –

+0

确实很少吸盘。 – Mzn

+0

This DEVIL !!! arrrr – yossico

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

希望这有助于! 感谢

13

我解决这个问题,因为我也有同样的问题:

只需添加到MySql.Web的引用,它会去。

+3

** BINGO!**这是我需要的,因为我在这台PC上安装了与* MySql *集成的其他应用程序。如果我要在* bubson bropa *的回答中注释这些参考文献,那么这些应用程序很可能会正常工作,直到下一次重新启动时 - 让我挠脑袋,并想知道为什么他们停止了工作。 – jp2code

+0

我的machine.config是不可编辑的?不幸的是我安装了连接器6.10.1.0,然后回滚到6.9.9,在machine.config中它仍然显示6.10.1.0版本 – Samra

+0

@Samra:可能的情况是它没有删除配置文件。您可以尝试删除与版本6.10.1.0相关的所有文件并重新安装6.9.9。希望工程! –

0

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

1

另一种解决方案:通过您的Web应用程序的应用程序池使用.NET的

  • 检查版本。在这里,我们考虑的版本是2.0
  • 转到文件夹C:\ Program Files文件(x86)的\ MySQL的\ NET连接器6.7.4 \组件\ V2.0(< - 取决于你的版本)从一个文件夹
  • 复制DLL到C:\ WINDOWS \装配
0

由于初学.NET中,我也经历了同样的情况..

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

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

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

谢谢!

0

我一直在寻找的答案,我觉得这对我的工作对fix-for-mysql-connectornet-693

你只需要在

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 
从MySql.Web.v20的每个实例删除” .v20" 解决方案

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

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

0

用于升级最新版本并解决这些类型的问题;

下的NuGet Manager控制台运行

PM> Install-Package MySql.Web

这将下载最新MySql.Web你。从项目引用查找DLL版本通过查看其属性。

然后,使用这个新版本更改web.config中的任何其他版本。这工作。