我的配置环境是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
在应用程序配置中未找到连接名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.建立一个空的数据库,命名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-编辑全局变量.希望能帮助遇到此问题的朋友
<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中的拷贝过来.