Asp.net 发布网站时遇到的问题

Asp.net 发布网站时遇到的问题,asp.net,mysql,asp.net-mvc,entity-framework,Asp.net,Mysql,Asp.net Mvc,Entity Framework,最近我开始试验ASP.NETMVC和实体框架。因为我的hostingprovider只提供MySQL,所以我一直在尝试设置它。 在本地,一切正常,但在发布后,我得到以下错误: [ProviderIncompatibleException: The store provider factory type 'MySql.Data.MySqlClient.MySqlClientFactory' does not implement the IServiceProvider interface. Use

最近我开始试验ASP.NETMVC和实体框架。因为我的hostingprovider只提供MySQL,所以我一直在尝试设置它。 在本地,一切正常,但在发布后,我得到以下错误:

[ProviderIncompatibleException: The store provider factory type 'MySql.Data.MySqlClient.MySqlClientFactory' does not implement the IServiceProvider interface. Use a store provider that implements this interface.]
由于我对配置这一点缺乏经验,而谷歌又缺乏一个好的答案,所以我想我应该在这里试试。 我最好的猜测是web.config文件中缺少了一些东西,但无法真正了解它是什么


任何帮助都将不胜感激

我想我找到了解决办法。 a) 我应该将提供程序添加到我的web.config:

  <system.data>
    <DbProviderFactories>
      <clear />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.0.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>

b) 我需要在我的项目中引用MySQL DLL(从连接器),以确保我将使用:

  • mysql.web.dll
  • mysql.data.entity.dll
  • mysql.data.dll
  • mysql.data.cf.dll
c) 这些文件必须随网站一起发布,因此我将在其属性中设置 “复制本地”为true

d) 确保web.config中的版本与dll的真实版本相对应

可悲的是,我至少要8个小时才能尝试这个方法(因为我现在正在工作),但当我在我们最擅长思考的地方思考时,我突然想到了这一点。 编辑:works:)

我也有同样的问题(mysql,将网站发布到主机,VS2008,mysql连接器6.1.3.0)。我必须做一些事情才能让它与我的托管网站一起工作。我在另一个网站上找到了这些解决方案,很抱歉,我没有链接,所以我不能给他们评分

首先,我添加了上面提到的参考文献。以及使用my BIN文件夹中的DLL而不是服务器GAC中的DBFactorys代码

其次,我必须创建单独的msl、ssdl和csdl(我通过创建一个windows窗体应用程序并将清单更改为“复制到输出目录”)。我把这些文件放在网站的APP_数据目录中

然后,我将我的连接字符串更改为如下内容。此外,连接字符串最初是用“quot”而不是单撇号创建的?我想是个虫子吧

添加name=“classEntities”connectionString=“metadata=~\App\u Data\Model.csdl ~\App\u Data\Model.ssdl ~\App\u Data\Model.msl;provider=MySql.Data.MySqlClient;provider连接字符串='server=hostServer;用户id=myUsername;密码=myPassword;数据库=schema''providerName=“System.Data.EntityClient”


希望这对某人有所帮助,我花了一到两周的时间来解决这个问题。

上面列出的文件是MySql.Data.dll的从属程序集,必须在bin文件夹中,但只有在web应用程序所在的服务器上未安装MySql.Data.msi包的情况下才可以。否则无需将这些文件放在bin文件夹中

只需在服务器上安装mysql.data.msi,并仅将mysql.data.dll放入bin文件夹,应用程序即可成功运行

哈比卜·哈米德 哈比布拉。hameed@yahoo.com文件: “mysql.web.dll”、“mysql.data.entity.dll”、“mysql.data.dll” 必须位于主机的“bin”文件夹和“root www”文件夹中

文件:“mysql.data.cf.dll”不执行任何操作,如果它位于“bin”文件夹中,则会出错