在公司開啟某些工作專案時,我的 Visaul Studio 常會彈出像這樣的警告訊息:
The Web project 'MyWeb' requires SQL Server Express LocalDB, whick is not installed on this computer.
To upgrade the project database to use latest SQL Server Express LocalDB, double-click the database file and follow the instructions. Note: After this upgrade, the project database can't be modified using earlier verions of Visual Studio.
大意是警告我這個網站專案需要 SQL Server Express,但我沒有安裝,要不就要升級新版,要不就安裝舊版… 然而,該網站所有資料都放在 SQL Server 或 Oracle,即使沒有 SQL Server Express 也可正常運作沒半點問題,就只是每次開專案會跳出來煩人警示。之前沒想太多點掉就算,但心中不免嘀咕,怎麼沒人嫌煩處理一下?(謎:巴望別人解決問題?說好的射手魂呢?)
最新接手的 sln裡面有三個專案都有這問題,每次開解決方案要點三次,加上初期編譯有誤需要反覆重開測試,於是惰性再強也壓不住竄升的煩躁感,驅使我尋找解決方法。
關鍵在 web.config 的這段連線字串,拿掉問題就解了!(前題:如果你沒有用到 ASP.NET 內建的使用者註冊及角色管理的話)
<connectionStrings>
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-MYWEB-20120807153209;Integrated Security=SSPI" />
至於背後的故事,應該是 VS2010 或 VS2012 時代(依據問題專案的建立年代推敲)網站專案樣版預設加入的設定,供 ASP.NET Membership 機制使用(即使網站採 Windows 驗證)。VS2013/VS2015/VS2017 在開啟專案時一旦偵測到連線字串出現.\SQLEXPRESS 而主機沒裝,便會彈出警示。接著,我也想到為什麼大家不覺困擾,沒人處理-我重裝電腦後沒再安裝 VS2010/VS2012,同事們多半還有安裝較早 VS 版本,根本沒這問題,哈!