我正在尝试使用网站管理工具为我的服务器上的网站配置成员资格。我已经在我的本地 SQL Server 副本上创建了一个 aspnetdb 数据库,并且通过 WSAT,我设法添加了几个角色,并锁定了服务器上的几个目录。
但是,当我尝试管理用户时,出现以下错误:
在应用程序配置中找不到连接名称“LocalSqlServer”或连接字符串为空。在 System.Web.Util.SecUtility.GetConnectionString(NameValueCollection config) 在 System.Web.Security.SqlMembershipProvider.Initialize(String name, NameValueCollection config) 在 System.Web.Configuration.ProvidersHelper.InstantiateProvider(ProviderSettings providerSettings, Type providerType)
显然,LocalSqlServer 连接字符串是可以的,否则我将无法添加角色,例如。
web.config的相关部分如下:
  <connectionStrings>
        <clear />
        <remove name="LocalSqlServer"/>
        <add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=aspnetdb;User Id=LoginUser;Password=password;" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" defaultUrl="~/admin/admin.aspx" />
    </authentication>
        <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
            <providers>
                <clear />
                <add
          name="SqlProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="LocalSqlServer"
          applicationName="myapp" />
            </providers>
        </membership>
    <profile>
      <providers>
        <clear />
                <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="myapp" />
      </providers>
    </profile>
    <roleManager enabled="true">
      <providers>
        <clear />
                <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="myapp" />
      </providers>
    </roleManager>
  </system.web>
据我了解,清除/删除元素应该覆盖任何其他配置文件,但无论如何,我尝试将相同的连接字符串添加到相关的 machine.config,但无济于事。
有任何想法吗?
作为替代方案,是否有任何理由不能直接调用 Membership DB 存储过程?有谁知道任何支持文件?