当前位置: 首页 > 编程语言 > C#

Connection.open无限期挂起,不会抛出任何exception分享

时间:2023-04-10 22:24:44 C#

C#学习教程:Connection.open无限期挂起,不抛出任何异常我不知道为什么,似乎还有其他未回答的话题。虽然,如果无法访问IP网站,那么它会按预期工作。privatevoidDoStuff(){stringconnectionString="DataSource=www.google.com;ConnectionTimeout=5";使用(SqlConnectionconnection=newSqlConnection(connectionString)){connection.Open();//无限期地挂在这里WriteLine("测试");例如,如果我将连接字符串设置为connectionString="DataSource=www.nonexistentsite.com;ConnectionTimeout=5";然后它抛出异常。我怎样才能让它为现场网站抛出异常?...显然,谷歌仅用于测试目的。编辑:如果我尝试连接到无法访问的服务器名称或IP地址,则会出现此异常...建立与SQLServer的连接时发生了与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及SQLServer是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开与SQLServer的连接)更新:让程序长时间运行后,它通常会在3-5分钟后超时,并给出上面发布的错误。我怎样才能让它超时更快?如果你为你的DataSource(比如example.com)设置了一个FQDN(FullyQualifiedDomainName),而DNS服务器长时间无法解析这个FQDN,很明显你的请求会挂掉。确保运行应用程序的计算机可以访问SQLServer并毫无问题地解决它。此外,您可能希望确保没有可能阻止请求的防火墙。这些症状的另一个可能原因是您已经用尽了ADO.NET的连接池。如果您有许多并行运行的慢速SQL查询,并且每个查询都与数据库有物理连接,就会发生这种情况。此池上的可用连接数有限制,当达到此限制时,下一次调用connection.Open()可能会等待可用连接返回到池中。备注:您可能还需要在连接字符串中指定您希望如何向SQLServer进行身份验证。有关更多示例,请访问connectionstrings.com。也就是说,您在问题中发布的C#代码绝对没有问题。它看起来更像是一个与网络相关的问题,您可以提请网络管理员注意。要在指定时间后退出连接但不成功,可以在连接字符串中使用“连接超时”参数。您指定的数字以秒为单位,例如,ConnectionTimeout=240等于240秒60秒=4分钟。示例连接字符串:在上面的连接字符串中,Open()命令将在10秒后超时。以上是C#学习教程:Connection.open无限挂起,不会抛出任何异常。分享的所有内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注——本文来自网络收藏,不代表立场,如涉及侵权,请谅解点击右侧联系管理员删除。如需转载请注明出处: