来自TFS构建代理

时间:2017-01-05 18:22:39

标签: sql-server azure tfs azure-sql-database azure-devops

我有以下设置:

  1. Azure MSSQL数据库
  2. TFS构建服务器
  3. 在其中一个步骤中构建服务器联系Azure数据库,并且每次都会收到如下错误消息:

      

    Invoke-Sqlcmd:发生了与网络相关或特定于实例的错误   同时建立与SQL Server的连接。服务器不是   发现或无法访问。验证实例名称是否正确   并且SQL Server配置为允许远程连接。   (提供者:命名管道提供者,错误:40 - 无法打开   连接到SQL Server)

    这些失败率各不相同。有时它是一个失败的构建十个成功的。有时,我连续五次失败。

    无论构建服务器是连接到mymssqlserver.database.windows.net还是mymssqlserver.database.secure.windows.net

    ,都会发生错误

    Azure资源运行状况日志告诉我数据库确实在每天深夜或每隔几天早上大约5到10分钟脱机,但这些脱机时间与连接问题不重叠。

    错误始终发生在远程TFS托管的构建代理上,永远不会发生在本地代理上。

    关闭Autoclose。

2 个答案:

答案 0 :(得分:1)

您的问题应该与Azure上的SQL数据库的防火墙设置有关。 我建议:

  • 验证 Azure SQL数据库部署任务是否具有参数"使用"指定防火墙规则设置为"自动检测&#34 ;;使用Hosted Build Agent时必须这样做;
  • 在Build Definition上启用详细日志记录(通过在变量部分中将System.Debug设置为True),运行Build并验证 Azure SQL数据库部署任务是否成功设置了防火墙规则;
  • 验证内部部署构建代理计算机是否已在SQL数据库的防火墙设置中作为允许的客户端登记,这就是部署始终适用于本地'本地'建立代理人;
  • 阅读SQL DB Firewall Configuration上的“问题排查”部分,并发现您设置的任何可能的罪魁祸首。

答案 1 :(得分:0)

对我有用的解决方案是将网络协议从deafult,命名管道更改为TCP。 我的连接字符串现在看起来像:

tcp:mymssqlserver.database.windows.net