C# VS2017上的SQL Server连接超时

C# VS2017上的SQL Server连接超时,c#,sql-server,azure,visual-studio-2017,sqlconnection,C#,Sql Server,Azure,Visual Studio 2017,Sqlconnection,我有一个控制台应用程序,它正在执行标准: new SqlConnection("<connection string>").Open() newsqlconnection(“”.Open() 但在以下情况下超时(最终): System.Data.SqlClient.SqlException(0x80131904):与网络相关的或 建立到的连接时发生特定于实例的错误 SQL Server。找不到服务器或无法访问服务器。验证 实例名称正确且SQL Server配置为 允许远程连接。(

我有一个控制台应用程序,它正在执行标准:

new SqlConnection("<connection string>").Open()
newsqlconnection(“”.Open()
但在以下情况下超时(最终):

System.Data.SqlClient.SqlException(0x80131904):与网络相关的或 建立到的连接时发生特定于实例的错误 SQL Server。找不到服务器或无法访问服务器。验证 实例名称正确且SQL Server配置为 允许远程连接。(提供程序:TCP提供程序,错误:0-等待 操作超时。)-->System.ComponentModel.Win32Exception (0x80004005):等待操作超时

尝试打开与(Azure托管的)SQL Server 12实例的连接时。我无法确定问题的原因,如:

  • 这只发生在2017年。VS2015运行完全相同的代码
  • 我通过SSMS、LINQPad和同一解决方案中的ASP.NET项目(即使使用2017)连接到DB没有问题
  • 连接超时设置为30秒
  • 它仅在调试模式下运行时发生
  • 连接到本地数据库时也会发生这种情况
  • .NET 4.5.2、VS15.0.0、Win10

    任何被欣赏的想法,我都不知道是什么导致了这一切


    编辑:似乎已经开始工作了。我不太清楚原因,但可能是升级到VS15.1起了作用。谢谢大家的建议。

    这只是一种猜测,但你是在家工作的顾问吗?今天,我也经历了同样的事情,但是,我甚至还没有验证它在VS2015或Linqpad中是否仍能像您一样工作。我首先检查我是否仍然连接到VPN,并且我的连接没有断开

    即使你是连接的,自从我开始在这里工作以来,这种情况只在我身上发生过一次,但VPN说我是连接的,我可以访问鳄梨,但不能访问COSMOS或任何文件共享。这就像是一个半连通的状态,我必须断开和重新连接几次才能摆脱它。我还清除了VPN连接中保存的凭据


    也许试试这些,看看是否有用?如果没有,请在你弄明白后告诉我。谢谢

    如果您正在使用Azure主机,请尝试以下方法:

    1)首先检查您是否从vs 2017连接到数据库

    在vs2017中,显示服务器资源管理器(菜单->视图->服务器资源管理器)

    您发现一个具有azure节点的树

    配置与azure(sql server)的连接并连接到数据库

    如果连接成功,请查看生成的连接字符串(是否不同?在应用程序中使用)

    成功连接意味着:防火墙没有阻塞,它独立于调试/发布模式或应用程序类型:console/web/。。。。 并且连接字符串是有效的

    2)生成两个可执行程序,一个在调试模式下,另一个在发布模式下。

    直接使用连接字符串(无需从配置文件中读取它(以隔离问题的根源)

    在您的开发环境(运行vs 2017)和其他机器(未安装vs 2017)中运行双控制台应用程序

    记录你的发现

    请确保,在源代码中,在调试模式下不使用可能影响连接的编译标志

    3) 查看以下帖子,可能会有所帮助:

    让我知道1和2的结果

    3)最后一步(在ADO.NET中使用数据跟踪)


    如果在应用方法1或2的过程中出现一些奇怪的情况,我们可能必须使用ado.net中的数据跟踪来发现神奇之处:)如中所述:

    您是否可以尝试或检查以下任何一项:

    • 在连接字符串中指定端口1433(这是Azure的端口)
    • 检查TCP IP是否已启用,请参见此处
    • 您是否尝试过增加超时以查看它是否最终连接
    在您使用连接字符串时,我会检查您的连接字符串是否完全相同。它可能是一个web.confg或app.config,而不是从您期望的位置转换或检索的吗?谢谢McGaz。我的第一个想法是,不知怎么的,我把它弄错了。但是,完全相同的项目,具有相同的代码和设置,在VS2015中可以正常工作,因此我不认为它可以配置…无论哪种方式,我都可以看到在这两种情况下传递的连接字符串完全相同。另一种可能是,如果您的防火墙正在阻止VS2017 exe,而不是VS2015,请尝试在管理模式下运行VS2017(右键单击->以管理员身份运行…)。我将尝试检查wireshark的运行情况。您可能看不到太多,但至少您会看到它是否尝试打开与远程服务器的连接。如果您使用名称连接,您也可以尝试IP地址,但我不知道它将如何与azure配合使用。我正在从我的计算机直接连接到azure,并且它可以从中正常工作VS15,所以不可能是VPN问题。它现在开始工作,可能是由于VS17更新1的更新。从技术上讲,这不是解决方案(似乎是更新VS2017以更新1实现了这一点),但对于调试建议,赏金是你的。