2009-02-12 121 views
1

我连接到一个远程SQL Server实例与下面的连接字符串远程连接需要Sql Server Agent吗?

“网络库= DBMSSOCN;数据源= xx.xxx.x.xxx,1433;初始目录= MyDatabase的;用户ID = MyUserId;密码= MyPassword;连接超时= 120;“

  1. SQL Server浏览运行
  2. 本地和远程连接是使用TCP/IP只允许

应用随机连接失败理由如下SQLEXCEPTION

TCP提供程序,错误: 0 - 连接尝试失败,因为连接方在一段时间后没有正确响应,或由于连接的主机未能响应而建立连接失败

代码连接如下

using (SqlConnection connection = new SqlConnection(m_ConnectionString)) 
{ 
    connection.Open(); // falls over here 
} 

我想到了防火墙配置端口1433,但为什么会在防火墙有时允许连接,有时不?

是否需要运行Sql Server Agent?如果是的话,为什么MSDN上的Sql Server Agent的描述在这方面不明显?

谢谢!

编辑:尝试添加在防火墙上的明确规则,开辟1433和到目前为止好,但可能是随机性再这样很难说,如果我解决或尚未

回答

2

没有,SQL Server代理不需要运行。 SQL Server代理只需要在SQL服务器上执行计划任务。

这可能是一个网络问题。你可以ping服务器吗?如果是这样,尝试用/ t连续ping它,看看是否所有数据包都到达。

这也可能是SQL服务器负载的问题。服务器是空闲还是负载不足?

您可以在SQL服务器上或同一局域网上本地测试应用程序以查看问题是否存在?

+0

尝试过连续ping命令,没有失败,响应从任何地方38 - 250毫秒。 Sql Server将处于持续负载下,因为它也有7个数据库运行Sitecore安装和一个持续使用的图像元数据库 – 2009-02-12 17:13:41

1

那么你不需要现在运行SQL Server代理,错误表明你正在从场景中获取一个超时。

您可能被阻止的原因有很多。也许防火墙被配置为一次只允许一个端口上的一定数量的连接。或者数据库本身限制了连接的数量。您的互联网速度很慢,您正在等待120秒。名单继续。 :)