我们有时会在 ASP.NET MVC 4 应用程序中收到来自 PetaPoco 的以下数据库连接错误:
There is already an open DataReader associated with this Command which must be closed first.;
System.Data; at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)...
当我们对系统施加更多负载时,似乎会发生这种情况。
我们在研究中发现的一些建议是:
- 执行 PetaPoco Fetch 而不是 Query
- 将 MultipleActiveResultSets=True 添加到我们的连接字符串
有 PetaPoco 经验的人能否验证这些建议是否有帮助?任何其他避免异常的建议将不胜感激。
2013 年 6 月10 日更新我们将 Query 更改为 Fetch,我们看到了一些改进,但有时我们仍然会看到错误。
有谁知道将连接字符串更改为MultipleActiveResultSets=True可能有什么缺点?