【发布时间】:2019-10-14 14:38:40
【问题描述】:
我尝试了以下操作:ASP.NET Membership/Role providers for MySQL?,但我得到一个 SqlException,上面写着“错误定位服务器/指定的实例”。
对我能做什么有任何想法吗?
Web.config 成员资格:
<membership defaultProvider="MySqlMembershipProvider">
<providers>
<clear/>
<add name="MySqlMembershipProvider"
type="MySql.Web.Security.MySQLMembershipProvider,
MySql.Web, Version=8.0.18.0, Culture=neutral,
PublicKeyToken=c5687fc88969c44d"
autogenerateschema="true"
connectionStringName="localhoststr"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
applicationName="/"
/>
</providers>
</membership>
连接字符串:
<connectionStrings>
<add name="localhoststr" connectionString="Data Source=localhost;port=3306;Initial Catalog=aspnet;User Id=test;password=test"/>
【问题讨论】:
-
这看起来像一个 Sql Server 连接字符串。我们需要知道您使用的是什么驱动程序才能确定,但错误消息中“Sql Server”的使用似乎证明了这一点。确保您使用的是
MySqlADO.Net 对象而不是 Sql Server 对象。 -
除了对 MySQL 数据库使用正确的格式之外,您还应该在连接字符串上指定 providerName。查看 connectionstrings.com
-
@mason 即使使用这个连接String SERVER=localhost;DATABASE=aspnet;UID=test;PASSWORD=test 没有任何改变
-
您是否按照我的建议更新了提供商名称?异常类型表明它使用的是为 MS SQL Server 而不是 MySQL 设计的代码。所以你需要找出原因,providerName 可能就是它。
-
@JoelCoehoorn 如您所见,错误来自角色imgur.com/UdQx9QF
标签: mysql asp.net authentication asp.net-roles asp.net-authentication