我有一个控制台应用程序正在执行标准:
new SqlConnection("<connection string>").Open()
但是出现以下异常(最终):
尝试打开与(Azure托管的)SQL Server 12实例的连接时System.Data.SqlClient.SqlException(0x80131904):与网络相关或 建立连接时发生特定于实例的错误 SQL Server。服务器未找到或无法访问。校验 实例名称正确且SQL Server配置为 允许远程连接。 (提供者:TCP提供者,错误:0 - 等待 操作超时。)---&gt; System.ComponentModel.Win32Exception (0x80004005):等待操作超时
。我无法确定导致问题的原因,如:
.NET 4.5.2,VS15.0.0,Win10
任何想法都赞赏,我不知道是什么导致了这一点。
编辑:似乎已经开始工作了。我不确定为什么,但可能升级到VS15.1就可以了。谢谢大家的建议。
答案 0 :(得分:2)
在黑暗中只是一枪,但你是一个在家工作的顾问吗?我今天开始对我发生了同样的事情,但是,我甚至没有证实它仍然可以在VS2015或Linqpad中使用。我首先检查我是否仍然连接到VPN并且我的连接没有丢失。
即使你已经连接,我也有这种情况只发生在我身上,因为我从这里开始,但VPN说我连接了,我可以到达鳄梨但不是COSMOS或任何文件共享。这就像一个半连接的状态,我不得不断开连接并重新连接几次以摆脱它。我还从VPN连接中清除了保存的凭据。
也许尝试这些,看看这有帮助吗?如果没有,请在弄清楚后告诉我。谢谢!
答案 1 :(得分:1)
您正在使用Azure Host,请尝试以下方法:
1)首先检查您是否与2017年内的数据库连接
在vs2017中,显示服务器资源管理器(menu-&gt; view-&gt;服务器资源管理器)
您会找到一个带有天蓝色节点的树。
配置与azure(sql server)的连接并连接到数据库。
如果成功连接,请查看生成的连接字符串(它是否不同?在您的应用程序中使用它)
成功连接意味着:不阻止防火墙,它独立于调试/发布模式或应用程序类型:console / web / .... 并且连接字符串有效
2)在调试模式下生成两个可执行程序,在发布模式下生成第二个。
直接使用连接字符串(不从配置文件中读取它(以隔离问题的根源)。
在您的开发环境(运行vs 2017)和其他计算机(没有安装vs 2017)中运行两个控制台应用程序。
记录您的发现。
请确保您在源代码中不会在调试模式下使用可能影响连接的编译标志。
3)查看以下帖子,可能有所帮助:
Azure SQL Database connection exception (System.Data.SqlClient.SqlException is thrown )
Azure Exception Details: System.Data.SqlClient.SqlException: Login failed for user 'null'
让我知道1和2的结果
3)最后一步(使用ADO.NET中的数据跟踪)
如果在应用方法1或2时出现异常,我们可能必须使用ado.net中的数据跟踪来发现魔法:),如下所述:https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/data-tracing
答案 2 :(得分:1)
您可以尝试或检查以下任何一项: