|
想在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服務,終於搞定)
查到的原因如下(應該是之前進行磁盤整理的時候把文件進行壓縮了)
? | 性能 壓縮卷上的數據庫可能會引起大量的性能開銷。 開銷量隨 I/O 量和讀寫比率而變化。 不過,在某些條件下性能下降比例已超過 500%。 |
? | 數據庫恢復 要進行可靠的數據庫事務恢復,需要扇區對齊方式的寫入,但壓縮卷並不支持這種寫入。 第二個問題則涉及內部恢復空間的管理。 從內部而言,SQL Server 在數據庫文件中要保留一段預分配空間用於回滾操作。 壓縮卷上有可能出現預分配文件“空間不足”的錯誤,這會對成功恢復造成影響。 |