连接超时。在登录后阶段经历了超时时间。

12

我的应用程序中,查询工作正常。但是,对于单个查询语句,我遇到了以下错误。

System.Data.EntityException:底层提供程序在打开时失败。 ---> System.Data.SqlClient.SqlException:连接超时已过期。在登录后阶段,计时器已经过去。连接可能已超时,等待服务器完成 登录过程并响应;或者在尝试创建多个活动连接时可能已经超时。尝试连接到此服务器所花费的时间为-[Pre-Login] initialization=0; handshake=13914; [Login] initialization=0; authentication=0; [Post-Login] complete=1062; ---> System.ComponentModel.Win32Exception:等待操作已超时

我已经通过sqlprofiler运行了检测死锁,但是没有发现任何问题。

我正在使用entity framework运行简单的查询。

任何帮助都将不胜感激。


奇怪,我从Azure SQL Server收到了错误信息,这不应该受到任何资源(RAM、CPU)的影响,这是在本地机器(其他主机服务)的情况下建议采取的措施。 - Bronek
3个回答

6
在Stack Overflow上,有一篇名为Help troubleshooting SqlException: Timeout expired on connection, in a non-load situation的帖子。它与你的问题非常相似,请看一下。
我将引用(来自该帖子)一个评论作为可能导致您问题的原因:
“内存不足” “您可能已启用‘自动关闭’” “SQL代理作业可能会引起问题”
在那篇文章中,您可以看到关于这个主题的很好的解释。

内存可能是一个问题,因为我的应用程序正在虚拟机上运行,但如何确保这是原因 自动关闭已禁用 SQL代理作业未运行 - Keshav Prashant
尝试给你的虚拟机器添加更多内存。你看了那篇文章吗?他们提到了如何检查内存性能。 - Orlando Herrera

1
也许您忘记在之前关闭连接。
这就是为什么:“或者在尝试创建多个活动连接时已超时。”
(由于我的声望,我现在无法评论,请不要把这视为完整的答案。)

5
连接正在关闭。我正在通过using块释放连接。 - Keshav Prashant

0

这看起来像是与Active Directory有关的问题。可能某个端口被阻塞了(例如135),因此发生了超时。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接