重裝了系統(tǒng),實在不想在折騰 MSSQL 那龐大的身軀了,只是想簡簡單單使用 LocalDB,但是在發(fā)布網(wǎng)站時,碰到了 IIS 連接 LocalDB 的問題,經(jīng)過幾個小時的折騰,完美方案如下:
總體步驟
- 用管理員運行命令行窗口
- 使用
sqllocaldb命令對 LocalDB 進行共享- 在 VS 的 SQL 查詢窗口中,將對應的 IIS 應用程序池添加到數(shù)據(jù)庫的管理員角色中
- 重啟電腦(這一步很重要,因為重啟后,共享的結果才生效)
- 修改連接字符串
- 一切照舊
開始詳細步驟:
首先,用管理員身份運行命令行窗口,輸入以下命令:
sqllocaldb share MSSQLLocalDB MyDB
// 如果想停止共享,輸入以下命令
// sqllocaldb unshare .\MyDB
回車后,可以看到創(chuàng)建成功的標志。
然后,開始添加 IIS 的應用程序池到數(shù)據(jù)庫的管理員角色中,依次輸入以下 SQL 腳本,每輸完一句腳本,請執(zhí)行以下。
// 創(chuàng)建登錄賬號
create login [IIS APPPOOL\ASP.NET v4.0] from windows;
// 添加到管理員角色中
exec sp_addsrvrolemember N'IIS APPPOOL\ASP.NET v4.0', sysadmin
注:根據(jù)自己的 IIS 應用程序池來進行添加。
這時,一定要記住:重啟電腦!
重啟完之后,用任意連接工具(VS2017 自帶的 SQL 對象資源管理器、Navicat、等),測試連接。
服務器(主機名):(localdb)\.\MyDB
驗證:Windows 驗證
一般來說,直接可以測試成功,然后修改數(shù)據(jù)庫連接字符串即可,如下所示:
Data Source=(localdb)\.\MyDB;AttachDbFileName=D:\xxxx.mdf;Integrated Security=True
// 以下鏈接字符串,不知道是配置原因還是什么,一直沒有連接成功,
// 所以,最終采用了上面(指定 MDF 文件)的連接字符串。
// Data Source=(localdb)\.\MyDB;Initial Catalog=xxxx;Integrated Security=True
至此,全部完成。