我有一个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数据库部署”步骤,并按照上述答案中建议的防火墙步骤进行操作。奇迹般有效!谢谢您的帮助。 –