8

我正在尝试将 MySql 连接器 6.2.2.0 用于成员资格和角色提供者。

我遇到的问题是: 无法初始化提供程序。缺少或不正确的架构。

<authentication mode="Forms"/>
<roleManager defaultProvider="MySqlRoleProvider"
    enabled="true"
    cacheRolesInCookie="true"
    cookieName=".ASPROLES"
    cookieTimeout="30"
    cookiePath="/"
    cookieRequireSSL="false"
    cookieSlidingExpiration="true"
    cookieProtection="All" >
  <providers>
    <clear />
    <add
        name="MySqlRoleProvider"
        type="MySql.Web.Security.MySQLRoleProvider, MySql.Web,
        Version=6.2.2.0,Culture=neutral, PublicKeyToken=c5687fc88969c44d"   
        connectionStringName="mySQL"
        applicationName="capcafe"
        writeExceptionsToEventLog="true"
    />
  </providers>
</roleManager>
<membership defaultProvider="MySqlMembershipProvider">
   <providers>
      <add connectionStringName="mySQL" 
         applicationName="capcafe" 
         minRequiredPasswordLength="5"
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="false"
         minRequiredNonalphanumericCharacters="0" 
         name="MySqlMembershipProvider"
         type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.2.2.0,
         Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
   </providers>
</membership>

这是它似乎不喜欢的行:

Line 57:             type="MySql.Web.Security.MySQLRoleProvider, MySql.Web,
Version=6.2.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"

我在我的 bin 中同时引用了 MySql.Web 和 MySql.Data!任何解决此问题的帮助将不胜感激。

4

5 回答 5

13

添加对程序集的引用,将 autogenerateschema="true" 属性添加到两者:

<providers>
<remove name="MySQLProfileProvider"/>
<add name="MySQLProfileProvider" autogenerateschema="true" type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.2.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/"/>
</providers>

使用 ASP.Net 配置工具。

于 2010-03-19T17:02:46.027 回答
3

我的问题是我的连接字符串中有“localhost”,而不是网络主机的 MySQL 服务器的 IP 地址。

一旦我在 web.config 文件中进行了更改,它就可以正常工作,因此您需要非常仔细地检查您的 web.config 文件。

于 2010-12-22T14:17:26.487 回答
3

我遇到了这个问题,原来我的连接字符串中没有密码,我认为仔细检查您的连接字符串是否正确将是一个不错的起点。

于 2010-04-17T17:06:56.360 回答
2

我遇到了同样的问题。由于我将站点部署到运行 Mono 的 linux 服务器上,因此我的最终成为一个案例问题。启用 autogenerateschema="true" 帮助我解决了这个问题。一些主机不会让代码生成必要的表,所以如果它不自动生成你的模式然后检查大小写问题。

于 2011-03-24T20:02:43.793 回答
1

CodeMonkey 的解决方案对我有用……我实际上是在将一个新应用程序部署到 Win 2008 Server VM 上。在我指定 LocalMySql 连接字符串并将 MySQLRoleProvider 自动生成设置为 true 之前,无法生成架构。

于 2013-02-15T21:23:35.043 回答