2013年6月4日 星期二

不是改個密碼就好了嗎?

遠端的 SQL Server 換個密碼,不是很平常的事,會對你有什麼影響嗎?

有,偏偏被我遇到了,Compiler 之後出現以下錯誤訊息:

------ Deploy started: Project: SqlCommandGallery, Configuration: Debug Any CPU ------
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.TSqlTasks.targets(120,5):
Error Deploy01234: Could not connect to 127.0.0.1 : Login failed for user 'pubOOO'.
Done executing task "SqlDeployTask" -- FAILED.
Done building target "DspDeploy" in project "SqlCommandGallery.dbproj" -- FAILED.
Done executing task "CallTarget" -- FAILED.
Done building target "DBDeploy" in project "SqlCommandGallery.dbproj" -- FAILED.
Done building project "SqlCommandGallery.dbproj" -- FAILED.

Build FAILED.

看著別人輕鬆改個密碼就去泡茶喝咖啡,我卻要對著電腦「相看兩不厭」,這...怎麼差這麼多啊。

再仔細的檢查了錯誤訊息,我看到 Compiler 是通過的,錯誤的位置是在 Deploy 的階段。對於這種錯誤訊息,自己實在太沒經驗了,所以上網找了一下是否有同病相憐的人,開心,有ㄟ!!我找到 gaurang 的一篇文章:「Error Deploy01234: The target database schema provider could not be determined. Deployment cannot continue.」。

原來我的專案設定,不知道為何被勾選到在 Build 的時候,還要去做佈署的動作,我還真的沒有印象自己有刻意去做這個設定啊?但沒關係,把佈署的選項取消即可。


在 VS2010 開發工具的 Build -> Configuration Manager ,於其中發現了自己做的傻事,把兩個地方的 Deploy 都打勾,所以現在把他們取消掉後,重新 Compiler 之後就正常了。

一直很好奇,為何在 Configuration Manager 所列出的清單裡,就只有 Config, SqlCommandGallery 兩個會被勾選 Deploy,其他就不會。原來這兩個都是使用所謂的「資料庫專案 ( Database Project)」,打開該專案的屬性設定,並選擇 Deploy 頁籤,就可以發現原來自己先前曾經設定過資料庫連線資訊。


這裡主要會產生專案佈署時會用到的 SQL 指令檔,並命名為 Config.sql。然而自己其實是不需要這項貼心服務的,所以可以在 Target connection 的區塊,點選 Clear 按鈕,把資料庫連線資訊清除掉。如此日後在 Compiler 時,就不會跑出密碼不正確的錯誤訊息了。如您還是想保留原先的架構,只想更新密碼的話,也可在此點選 Edit 重新設定即可。


參考:
01.Error Deploy01234: The target database schema provider could not be determined. Deployment cannot continue.
02. Issues you might face while creating a database project (Visual Studio Data Base Edition) for an existing database.

沒有留言:

張貼留言