我有一個Team Services(Visual Studio Online)構建,其中一個MSBuild步驟使用發佈配置文件配置爲構建和部署數據庫項目。我似乎無法成功驗證它。當我排隊Team Services構建定義時,我能夠構建數據庫項目並生成.dacpac。但是,來自發布時間和此錯誤來:Visual Studio Team Services構建失敗 - 將數據庫項目設置爲Azure SQL
C:\ a \ 1 \ s \ Source \ ShopDatabase \ bin \ Output \ MyDatabase.publish.sql(0,0):錯誤Deploy72002:無法連接到主服務器或目標服務器'mydb'。您必須在主服務器或目標服務器'mydb'中擁有相同密碼的用戶。
我們確定用戶存在於mydb和Azure中的主數據庫中。
目標:天藍色的SQL數據庫
DB項目目標平臺:微軟Azure SQL數據庫
當我直接從Visual Studio運行發佈配置文件,它的工作原理。但是在Team Services構建定義中,它並沒有。我嘗試了這些作爲MSBUILD參數:
/噸:構建;發佈/p:SqlPublishProfilePath="myproject.Dev.publish.xml」/P:密碼= 「輸入mypassword」
和此:
/t:Build;發佈/p:SqlPublishProfilePath="myproject.Dev.publish.xml「/ p:TargetConnectionString =」Data Source = myproject.database.windows.net; Persist Security Info = True; User ID = myuser ;密碼=輸入mypassword;」 /p:VisualStudioVersion=14.0/P:用戶名= 「爲myuser」/ P:密碼= 「輸入mypassword」
和此:
/噸:構建;發佈/p:SqlPublishProfilePath="myproject.Dev .publish.xml「/ p:TargetConnectionString =」Data Source = myproject.database.windows.net; Persist Security Info = True; User ID = myuser; Password = mypassword;「 /p:VisualStudioVersion=14.0/p:TargetUserName =「myuser」/ p:TargetPassword =「mypassword」
但是不行。請幫助我T_T已經在網上搜索了6個小時了
感謝凱文,這解釋了爲什麼我們可以部署在我們的機器(我們明確地將我們的公共IP添加到白名單)。我們實際上是使用MSBuild步驟,而不是部署SQL Azure步驟(因此無法使用AutoDetect防火牆)路由。您是否知道如何獲取VSO構建託管代理的IP地址,然後我們可以將其添加爲白名單。 –
通過對此進行讀取,Hosted代理池沒有固定的IP地址範圍,因此您無法將防火牆中的池列入白名單。我的理解是,您需要在Azure門戶中將服務器設置爲「允許訪問Azure服務」。 – Witchfinder
已更改計劃:)我們執行了「Azure SQL數據庫部署」步驟,並按照上述答案中建議的防火牆步驟進行操作。奇蹟般有效!謝謝您的幫助。 –