Problems publishing website

Asked
Viewd2590

3

Recently I've began experimenting with ASP.NET MVC and the Entity Framework. Since my hostingprovider only provides me with MySQL I've been trying to set that up. Locally everything works fine, but after I publish it I get the following error:

[ProviderIncompatibleException: The store provider factory type 'MySql.Data.MySqlClient.MySqlClientFactory' does not implement the IServiceProvider interface. Use a store provider that implements this interface.]

Since I'm rather inexperienced with the configuring this and google is lacking a good answer I thought I'd try here. My best guess is something missing in the web.config file, but can't really make out what it is.

Any help would be greatly appreciated!

4 个答案

3

我想我已经找到了解决方案。 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个小时无法尝试(因为我目前正在工作),但是当我在我们竭尽所能的地方做一些思考时,这种想法就浮现在脑海中。 编辑:作品:)

0

文件: “ mysql.web.dll”,“ mysql.data.entity.dll”,“ mysql.data.dll” 必须位于主机的“ bin”文件夹和“ root-www”文件夹中。

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

1

上面列出的文件是MySql.Data.dll的从属程序集,并且必须位于bin文件夹中,但仅当在托管Web应用程序的服务器上未安装mysql.data.msi程序包时,才可以。否则无需将这些文件放在bin文件夹中。

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

Habib Hameed [email protected]

1

我遇到了同样的问题(mysql,将网站发布到主机,VS2008,MySql Connector 6.1.3.0)。我必须做一些事情才能使它与我的托管站点一起使用。我在其他站点上找到了这些解决方案,很抱歉,我没有链接,所以我不能功劳他们。

首先,我添加了如上所述的参考文献。以及使用BIN文件夹中的DLL而不是服务器GAC时使用的dbFactories代码。

第二,我必须创建单独的msl,ssdl,csdl(我通过创建Windows窗体应用程序并将清单更改为“复制到输出目录”来完成此操作)。我将这些文件放在网站的APP_DATA目录中。

然后我将连接字符串更改为如下所示。另外,连接字符串最初是用“ quot”而不是单撇号创建的吗?我想是个错误。

添加名称=“ classEntities” connectionString =“元数据=〜\ App_Data \ Model.csdl |〜\ App_Data \ Model.ssdl |〜\ App_Data \ Model.msl; provider = MySql.Data.MySqlClient;提供商连接字符串= 'server = hostServer;用户ID = myUsername;密码= myPassword;数据库=模式'“ providerName =” System.Data.EntityClient“

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