所以。
起初,我将连接字符串添加到远程服务器 MSSQL Server 2008 R2, 10.50.1600:
<add name="MySQLConnection" connectionString="server=xxx.x.xx.xx;initial catalog=xxxxx;user id=sa;password=xxxxxxxxxxx;"/>
然后,我在服务器端的 .NET 4.0 中使用 aspnet_regsql 配置了该远程数据库,并添加了自定义成员资格(因为 inbuild 不想使用 WSAT)。
<membership
defaultProvider="SqlProvider"
userIsOnlineTimeWindow="20">
<providers>
<clear />
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="MySQLConnection"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="/" />
</providers>
</membership>
所以,现在我可以使用 WSAT 配置我的应用程序,但无法在登录或注册页面上输入,出现错误:
System.ArgumentException: Invalid value for key 'attachdbfilename'.
Line 32: using (var context = new UsersContext())
Line 33: {
Line 34: if (!context.Database.Exists())
Line 35: {
Line 36: // Create the SimpleMembership database without Entity Framework migration schema
解决了:
问题出在这里:
public class UsersContext : DbContext
{
public UsersContext()
: base("DefaultConnection")
{
}
public DbSet<UserProfile> UserProfiles { get; set; }
}
我不需要自定义成员资格等 - 只需为我的连接字符串设置当前 DefaultConnection 名称,或在此处更改为 MySQLConnectionString。