背景
我正在使用MS SQL Server 2012(Dreamspark FTW)在Visual Studio 2012中设置数据库驱动的Web应用程序,或者至少我正在尝试。
已使用aspnet_config.exe设置并注册了数据库。我有一个有效的connectionString,我通过服务器资源管理器连接到数据库。 我的研究告诉我,我开发的每个应用程序都应该有自己的数据库和连接字符串(是的,我知道这不是凿成石头)。如果我构建的每个应用程序都指向不同的数据库,那么在machine.config中不需要是特定的连接字符串,对吗?但是,除非完整的连接字符串存储在machine.config中,否则我无法获得成员资格。
以下尝试均失败
我注意到在 system.web - >下会员资格 - > providers 标记是一个名为AspNetSqlMembershipProvider的add元素,以及一个指向特定连接字符串名称的connectionStringName属性。如果在machine.config中找不到具体命名的连接字符串,则该服务将不起作用。我尝试删除这些属性,但也导致了错误。
问题:
如何让我的应用程序使用存储在web.config文件中的连接字符串? 另外,我可以从machine.config中删除所有连接字符串吗? (如有必要/可能)
提前感谢您的见解
答案 0 :(得分:0)
你在Web.config中尝试过类似的东西吗?这会将SQL成员资格提供程序添加为默认提供程序。如果您的会员条目引用了特定的defaultProvider,那也可能是您的问题。
<membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="30">
<providers>
<clear />
<add applicationName="myapp"
connectionStringName="MembershipConnectionString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
maxInvalidPasswordAttempts="3"
minRequiredNonalphanumericCharacters="0"
minRequiredPasswordLength="6"
name="SqlMembershipProvider"
passwordAttemptWindow="60"
passwordFormat="Hashed"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="true"
type="System.Web.Security.SqlMembershipProvider" />
</providers>
</membership>