本文可帮助你解决通过 Visual Studio 部署 SQL 公共语言运行时 (CLR) 对象时发生的超时问题。
原始产品版本:SQL Server
原始 KB 数: 2011805
现象
将 SQL CLR 对象从 Visual Studio 部署到 SQL Server 时,可能会遇到如下各种错误:
错误消息 1:
错误:启动数据库上传事务失败。
错误:无法完成操作错误消息 2:
部署文件:TEstAssembly.dll,路径:E:\cases\CL MY\TEstAssembly\TEstAssembly\obj\Debug\TEstAssembly.dll...错误:超时已过期。 超时时间在操作完成或服务器没有响应之前已过。
但是,如果在 SQL Server Management Studio 中使用 CREATE ASSEMBLY 命令部署相同的 CLR 对象,则不会遇到任何问题。
原因
当 SQL CLR 对象太大而需要很长时间才能将其部署到 SQL Server 时,会出现此问题。 连接的默认超时值为 15 秒,查询的超时值分别为 30 秒。 部署大型程序集时,CREATE ASSEMBLY在 SQL Server 后端上执行的语句可能需要 30 秒以上才能返回,从而导致“症状”部分中所述的错误。
解决方法
使用以下过程增加 Visual Studio 中的查询超时和连接超时值。
更改查询超时
在 Visual Studio IDE 中,导航到“工具”->“选项”->“数据库工具”->“查询”和“视图设计器”。
可以取消选中“取消长时间运行的查询”选项,或者将“取消”选项后的值更改为更高的值。
更改连接超时
在 Visual Studio IDE 中,通过导航到“查看服务器>资源管理器”来启用服务器资源管理器。
在服务器资源管理器中,右键单击要在其中部署 CLR 对象的 SQL Server 的连接,然后选择“ 修改连接”。
在“修改连接”窗口中选择“高级”按钮。
在“高级属性”窗口中,将“初始化”部分下的“连接超时”值更改为更高的值。