远程连接需要Sql Server代理?

时间:2009-02-12 16:54:22

标签: sql-server-2005 configuration connection

我正在使用以下连接字符串连接到远程sql server实例

“Network Library = DBMSSOCN; Data Source = xx.xxx.x.xxx,1433; Initial Catalog = MyDatabase; User Id = MyUserId; Password = MyPassword; Connect Timeout = 120;”

  1. Sql Server Browser正在运行
  2. 仅允许使用TCP / IP进行本地和远程连接
  3. 应用程序随机引发以下SqlException

    无法连接

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

    连接代码如下

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

    我考虑过端口1433上的防火墙配置,但为什么防火墙有时会允许连接,有时候不允许?

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

    谢谢!

    编辑:尝试在防火墙上添加一个明确的规则以打开1433并且到目前为止一直很好,但可能是随机的再次很难说我是否修复

3 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:1)

您现在不需要运行SQL Server代理,错误建议您从方案中获得超时。

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

答案 2 :(得分:1)

您的SQL Server数据库将要休眠。第一次尝试连接时,必须重新启动并且连接超时。

确保“自动关闭”选项设置为“False”。这可以防止它在最后一次连接关闭后自行关闭。

http://itknowledgeexchange.techtarget.com/sql-server/auto-close-is-almost-as-bad-as-auto-grow/