ASP.NET 配置:无法连接到 SQL Server 数据库 - [.net]

想在vs2008里面用.net自带的身份验证功能,打开“网站”菜单的“ASP.NET 配置”后,点击“安全”后,出现如下的出错信息:

“选定的数据存储区出现问题,原因可能是服务器名称或凭据无效,或者权限不足。也可能是未启用角色管理器功能造成的。请单击下面的按钮,以重定向到可以选择新数据存储区的页。

下面的消息可能会有助于诊断问题: 无法连接到 SQL Server 数据库。 ”

测试“AspNetSqlProvider”,出现如下的出错信息:

未能建立数据库连接。 如果尚未创建 SQL Server 数据库,请退出网站管理工具,使用 aspnet_regsql 命令行实用工具创建和配置数据库,然后返回到此工具以设置提供程序。

下面是网上查到的解决方法,不起作用,应该是出错的原因不一样

解决办法:(按如下步骤操作即可解决)by Archerlu(飞龙在天) (已被我稍作修改)

1、打开SDK 命令提示(所有程序——Microsoft .NET Framework SDK v2.0——SDK 命令提示。也可打开VS的命令提示),输入aspnet_regsql,弹出ASP.NET SQL Server 安装向导,点下一步,点“为应用程序服务配置 SQL Server”,点下一步,数据库用<默认>(aspnetdb),点下一步,完成。

2、打开Visual Studio 2005,依次:工具-->选项-->数据库工具-->数据连接-->SQL Server实例名称(默认为空),改为你的服务器名称(默认实例的名称即为你的计算机名称)。

3、还是Visual Studio 2005,工具-->连接到数据库-->服务器名(输入刚才的服务器),可以按你要求选择Windows或SQL Server身份验证,然后数据库选择刚才的aspnetdb。测试OK后,点“高级”,复制对话窗口的最下面一行语句(比如,如果你之前选择“使用SQL Server身份验证”,则复制出来的语句类似为Data Source=Server;Initial Catalog=aspnetdb;User ID=sa)

4、打开IIS:默认网站-->属性-->ASP.NET-->编辑全局配置-->常规-->点击“连接字符串管理器”的“LocalSqlServer”后,点编辑,然后清除里面的字符串,再粘贴第3步所复制的字符串,如果你第3步是选择SQL Server身份验证的,还需在后边再手动输入“;Password=sa”,当然,后面的sa用你的密码替换,然后确定,如果第3步是Windows身份验证的,则粘贴后直接确定保存即可 -->应用。(如果第3步是选择SQL Server身份验证的,则修改后的连接字符串类似为Data Source=Server;Initial Catalog=aspnetdb;User ID=sa;Password=sa)

5、还是在IIS:默认网站-->属性-->ASP.NET-->编辑全局配置-->身份验证-->选定"启用角色管理"-->确定。

按照上面的步骤,到第2步时就无法完成,提示sql server不存在。突然想到,会不会sql server express服务还没启动?打开服务管理,果然。手动启动它,又提示启动失败,请查看日志。打开管理工具中的事件查看器,错误信息:

文件 "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\mastlog.ldf" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩。

再用这个错误google,才找到了解决方法:

1右键点击数据库所在的文件夹, 2点击属性,在常规选项卡中点击高级, 3在弹出的窗口中的压缩或加密属性中去掉压缩内容或者节省磁盘空间,点击确定 4点击应用,勾选应用于该文件夹所有文件 即可

(但我查看文件夹属性时发现压缩或加密属性本来就是未选的,后来选中里面的全部文件,再查看属性,才看到压缩那一项打了勾,把它去掉,确定,再启动sql 2005 express服务,终于搞定)

查到的原因如下(应该是之前进行磁盘整理的时候把文件进行压缩了)

NTFS 或 FAT 压缩卷上不支持 SQL Server 数据库。 压缩卷无法保证扇区对齐方式的写入,但这种写入在某些情况下是确保事务恢复所必需的。 此外,建议不要将 SQL Server 数据库备份为压缩卷上的磁盘文件。

虽然,从物理上说可以将 SQL Server 数据库放在压缩卷上,但我们并不建议也不支持这样做。 主要原因包括下列几方面:

?性能 压缩卷上的数据库可能会引起大量的性能开销。 开销量随 I/O 量和读写比率而变化。 不过,在某些条件下性能下降比例已超过 500%。
?数据库恢复 要进行可靠的数据库事务恢复,需要扇区对齐方式的写入,但压缩卷并不支持这种写入。 第二个问题则涉及内部恢复空间的管理。 从内部而言,SQL Server 在数据库文件中要保留一段预分配空间用于回滚操作。 压缩卷上有可能出现预分配文件“空间不足”的错误,这会对成功恢复造成影响。
也不建议将 SQL Server 数据库备份为压缩卷上的磁盘文件。 故障模式目前仍在研究中,但有证据表明,这种备份的可靠性比常规非压缩卷上备份的可靠性要低。 如果仍要进行压缩卷备份,则需要在每次备份前和每次还原后运行完整的 DBCC。 运行 DBCC 所需的时间应当作为是否使用这种备份技术的一个参考因素。