gpt4 book ai didi

sql-server - 如何减少 Entity Framework 的连接超时?

转载 作者:行者123 更新时间:2023-12-03 00:49:42 27 4
gpt4 key购买 nike

我想让与 SQL Server 的数据库连接快速失败。如何减少超时?我尝试在连接字符串中添加 Connection Timeout=1 ,但这似乎没有什么区别。

使用 Connection Timeout=500 时,大约需要 8 分 30 秒才会超时。这是预料之中的。使用 Connection Timeout=1 时,大约需要 40 秒才会超时,这比预期的时间要长得多。

我找到了 EntityConnection.ConnectionTimeout 属性,但它是只读的。我还能做些什么来减少这个超时吗?这是实体的问题吗?

更新:这是我的连接字符串。仍然需要大约 40 秒才能超时。

<add name="KofaxAdminToolsEntities" connectionString="metadata=res://*/DB.Model.KofaxAdminTools.csdl|res://*/DB.Model.KofaxAdminTools.ssdl|res://*/DB.Model.KofaxAdminTools.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MY_DATASOURCE;initial catalog=MY_CATALOG;persist security info=True;user id=MY_USER;password=MY_PASSWORD;MultipleActiveResultSets=True;App=EntityFramework;Connection Timeout=1&quot;" providerName="System.Data.EntityClient" />

更新2:所以我发现超时是tcp超时,而不是sql连接超时。如果我的机器能够到达主机,@marc_s 解决方案就会起作用,但是,由于我无法到达该主机,tcp 超时就会发挥作用。有谁知道如何减少 SqlConnection 的 tcp 超时?

最佳答案

您在何处以及如何指定连接超时?

我刚刚尝试将其添加到我的 EF 连接字符串(使用 EF 数据库优先) - 它按预期工作:随着 SQL Server 服务停止,连接尝试几乎立即超时......

<add name="myEntities" 
connectionString="metadata=res://*/People.csdl|res://*/People.ssdl|res://*/People.msl;provider=System.Data.SqlClient;
provider connection string=&quot;data source=.;initial catalog=mydb;
integrated security=True;connect timeout=1;multipleactiveresultsets=True;
*****************
App=EntityFramework&quot;"
providerName="System.Data.EntityClient" />

(为了清晰起见,EF 连接字符串被分解并换行 - 这将只是 web.config 中的一长行)

您需要添加connect timeout=x (其中 x 以秒为单位,任何大于 0 的值都可以)provider connection string=您的 EF 连接字符串的值。

关于sql-server - 如何减少 Entity Framework 的连接超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14842064/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com