无法初始化提供程序。MySql.Web连接器缺少或不正确的模式。

8

我正在尝试使用MySql Connector 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! 希望能得到帮助解决这个问题,非常感谢。
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配置工具。


2
只是想补充一下,autogenerateschema="true" 必须放在 'type' 声明之前。我把它放在后面仍然出现错误。一旦我把它放在前面,就开始正常工作了。 - Brian Tacker

3

我曾经遇到过这个问题,最后发现我的连接字符串中没有密码。我认为仔细检查你的连接字符串是否正确是一个很好的起点。


3

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

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


2

我曾经遇到过完全相同的问题。最终,我发现这是一个大小写问题,因为我将我的网站部署到运行Mono的Linux服务器上。启用autogenerateschema="true"帮助我找出了问题所在。但有些主机不允许代码生成必要的表格,所以如果它不能自动生成模式,请检查大小写问题。


1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接