C#连接到SQL Server时处理TCP超时

C#连接到SQL Server时处理TCP超时,c#,sql,tcp,connection-timeout,C#,Sql,Tcp,Connection Timeout,我创建了一个C#.NET 4.7应用程序,它连接到几个不同的远程SQL数据库实例。有时,连接问题可能会阻止网络级别的连接 目前,我正在使用下面的代码处理SQL超时连接,如果存在连接,该代码可以正常工作,但是如果问题是在网络级别,我需要处理这些问题,其中超时时间要长得多 我在这里发现了一篇十多年前写的文章。我想知道是否有人可以推荐这是当前的最佳实践,还是有更好的解决方案 if ( e is SqlException f) { if (

我创建了一个C#.NET 4.7应用程序,它连接到几个不同的远程SQL数据库实例。有时,连接问题可能会阻止网络级别的连接

目前,我正在使用下面的代码处理SQL超时连接,如果存在连接,该代码可以正常工作,但是如果问题是在网络级别,我需要处理这些问题,其中超时时间要长得多

我在这里发现了一篇十多年前写的文章。我想知道是否有人可以推荐这是当前的最佳实践,还是有更好的解决方案

    if ( e is SqlException f)
            {
                if (f.Number == -2 | f.Number == 258)
                {  do stuff} 
            }

除非服务器已链接,或者存在代理且代理超时,否则连接应该是即时的。某些服务器通过vpn进行远程连接,因此我需要处理连接是否可用或是否有人已关闭计算机!。延长超时时间并不能解决服务器关闭时的问题。这只会延长发现服务器已关闭所需的时间。默认超时时间为30秒,最好缩短超时时间,而不是让某人等待30秒以等待错误。您可能希望添加一个异常处理程序来捕获超时,然后确定下一步要做什么。当服务器关闭时,虽然sql超时似乎不会在30秒时触发,但运行时间似乎是无限期的,因此我认为可能是网络级超时TCP,即15分钟?我应该先测试连接吗?像这样的连接应该是即时的,除非服务器被链接,或者存在代理并且代理超时。一些服务器通过vpn进行远程连接,因此我需要处理连接是否可用或者是否有人关闭了计算机!。延长超时时间并不能解决服务器关闭时的问题。这只会延长发现服务器已关闭所需的时间。默认超时时间为30秒,最好缩短超时时间,而不是让某人等待30秒以等待错误。您可能希望添加一个异常处理程序来捕获超时,然后确定下一步要做什么。当服务器关闭时,虽然sql超时似乎不会在30秒时触发,但运行时间似乎是无限期的,因此我认为可能是网络级超时TCP,即15分钟?我应该先测试连接吗?像这样的