【问题标题】:not closed connection prevents connecting to database未关闭的连接会阻止连接到数据库
【发布时间】:2013-12-24 13:38:13
【问题描述】:

我有一个 APS.Net MVC,其 SQL Server 后端托管在 IIS7 上。我有一个问题连接未关闭,并显示以下异常消息:

“已经有一个打开的数据读取器与此命令关联,必须先关闭”。

当我刷新页面时,应用程序继续正常工作。一段时间后,会出现以下异常,但并非总是如此:

ExcuteReader 需要一个打开且可用的连接,连接当前状态为打开。

应用程序停止工作,从某种意义上说,我可以访问登录页面,但无法登录,有时需要大约 10 分钟才能登录,有时需要更长的时间才能重新启动 IIS。

我的问题:第一条异常消息是否与第二条消息有关系,从而阻止用户登录服务器。

【问题讨论】:

    标签: sql-server asp.net-mvc linq connection


    【解决方案1】:

    尝试将MultipleActiveResultSets=true 添加到您的连接字符串 .看下面的例子:

    <add name="MyConnection" connectionString="Data Source=192.168.1.0;Catalog=MyDb;Persist Security Info=True;Multipleactiveresultsets=True;User ID=xxx;Password=xxx" providerName="System.Data.SqlClient" />
    

    【讨论】:

    • 感谢您的回复,您能否简要解释一下这对我的情况有何帮助。设置 MultipleActiveResultSets=true 将如何解决问题
    • 从您提供的错误消息中,看起来您在迭代另一个查询的结果时执行了一个查询。可能导致这种情况的一件事是在迭代某些查询的结果时触发延迟加载。如果这是问题所在,可以通过在连接字符串中允许 MARS 来解决。
    • 再次感谢,还有一个问题,请问上面的第二个异常消息是否与第一个异常消息中出现的内容有直接关系,或者是另一个故事
    • 没有您的代码,很难想象问题究竟出在哪里,以及这两个问题是否相关。我想试试看吧。
    • 这是一个包含数千行代码的大型应用程序。我会尽力提供反馈。
    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    相关资源
    最近更新 更多