所以我的网络配置的关键部分如下所示:
<connectionStrings>
<add name="AppConnection" connectionString="Server=100.100.100.100;Database=AppDB;User Id=user;Password=password;" providerName="System.Data.SqlClient"/>
<add name="MemberConnection" connectionString="Server=100.100.100.100;Database=aspnetdb;User Id=user;Password=password;" providerName="System.Data.SqlClient"/>
</connectionStrings>
在成员(member)提供者部分:
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="MemberConnection"
applicationName="Consulate"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression="" />
</providers>
</membership>
正如所写,当我注册时,它连接到不正确的数据库。
但是,如果我将“MemberConnection”的所有实例更改为“DefaultConnection”,它就会起作用。
为什么必须使用“Default”作为连接字符串名称的一部分?
最佳答案
在 IdentityModels.cs 中,ApplicationDbContext 的构造函数继承了一个硬编码的“DefaultConnection”字符串。
将其更改为与 aspnetdb(成员资格)相关的连接字符串并且它起作用了。
关于asp.net - MVC 5 应用程序的多个连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26595989/