我在SQL Server表中保留了大约12 MB的二进制数据。保存此数据的列的类型为varbinary(MAX)
。
当我从服务器下载这个二进制数据时,如果我在局域网中就可以了。但是,我在尝试获取数据的C#应用程序中收到SQL Server超时错误。
出现此错误的原因是什么?默认情况下,数据库实例的远程查询超时属性为600秒。将此更改为零并没有帮助。
可以从服务器连接并获取其他值。例如,我首先检查同一个表中的DateTime
值,以确定是否应下载~12 MB的数据。如果内容是新的,那么我开始执行下载大数据。
答案 0 :(得分:1)
您的连接超时是多少? RemoteQuery Timeout是服务器定义的,用于测量从EXEC到任务完成所用的时间,但连接超时是客户端定义的。 尝试在连接字符串中添加一个子句,如:
Connect Timeout=300;
并查看是否会影响您的错误。 以下是有关差异的一些信息: http://msdn.microsoft.com/en-us/library/ms177457%28v=SQL.90%29.aspx http://vyaskn.tripod.com/watch_your_timeouts.htm
答案 1 :(得分:1)
您使用System.Data.SqlClient进行查询吗?如果是这样,您可以调整SqlCommand.CommandTimeout值。默认值为30秒。
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx