我的配置环境是Visual web developer 2005 express+sql server2005,打开VS后->website->asp.net configuration就出现这样的错误提示,弄了两天了,都快哭了,请各位大侠拔刀相助
在应用程序配置中未找到连接名LocalSqlServer或者连接字符串为空
<providers>
 <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/"
type="System.Web.Security.SqlRoleProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/>
<add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/
c:\\windows\microsoft.net\framework\v2.2.50727\config\machine.config 行:166

解决方案 »

  1.   

    今天终于把这个问题解决了
    1.建立一个空的数据库,命名aspnetdb
    2.打开aspnet_regsql.exe,这个文件在c:\windows\microsoft.net\framework\v2.0.50727,安装版本不同也有不同的位置,服务器:机器名\SQLEXPRESS,数据库:aspnetdb
    3.配置web.config,这个配置文件在c:\windows\microsoft.net\framework\v2.0.50727\config文件夹中.在system.web节点下添加authentication节点。membership既然是用于成员资格管理,当然要求登录验证身份,所以首先加上一个forms验证。
        <authentication mode="Forms">
          <forms loginUrl="login.aspx" name=".aspxlogin"/>
        </authentication>
    同样在system.web节点下添加membership节点。
        
    <membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="15" hashAlgorithmType="">
                <providers>
                    <clear/>
                    <add connectionStringName="ConnectionString" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                </providers>
            </membership>
    再配置其角色管理roleManager,也是在system.web下
        <roleManager enabled="true" cacheRolesInCookie="true">
         <providers>
         <clear/>
         <add connectionStringName="ConnectionString" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
         </providers>
       </roleManager>
    到这里问题就解决了,如果出现provider:命名管道提供程序,error:40-无法打开到sql server的连接,说明在SQLSERVER 2005 EXPRESS版本下要注意服务器名为机器名\SQLEXPRESS,此外需要配置SQL SERVER 2005的外围应用配置器和配置管理器.
    另外还需配置的是internet信息服务-默认网站-属性-ASP.NET-编辑全局变量.希望能帮助遇到此问题的朋友
      

  2.   

    补充一下,在web.config中加入
    <connectionStrings>
     <remove name="LocalSqlServer"/>
     <add name="LocalSqlServer" connectionString="data source=机器名SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
    providerName="System.Data.SqlClient"/>
    改正几点:
    <clear/>分别替换为<remove name="AspNetSqlMemberShipProvider"/><remove name="AspNetSqlRoleProvider"/>,另外上述的AspNetSqlMemberShipProvider和AspNetSqlRoleProvider可由machine.config中的拷贝过来.