RPM*_*984 10 .net c# sql-server asp.net dapper
所以我已经阅读了一堆链接/ SO问题,但我仍然无法得到明确的答案.
在ASP.NET应用程序中使用Dapper执行SQL查询时,打开/关闭连接的最佳做法是什么?
这是我目前正在遵循的模式:
using (var db = new SqlConnection(_connectionString))
{
return db.Query("dbo.SomeQuery");
}
Run Code Online (Sandbox Code Playgroud)
基本上,每次根据需要打开/关闭SQL连接.
根据我的理解,上面的代码应该自动打开/关闭SQL连接(例如我不需要明确做db.Open或者db.Close).
我看到的问题是,过了一段时间,我得到了一堆这些错误:
InvalidOperationExceptionTimeout已过期.从池中获取连接之前经过的超时时间.这可能是因为所有池连接都在使用中并且达到了最大池大小.
在这段时间里我有一个SQL分析器跟踪,我没有看到任何会阻塞任何内容的长查询,所以看起来好像我的ASP.NET Web应用程序没有连接(而不是花费太长时间)执行查询).
有人能告诉我我做错了什么吗?
旁注:我的应用程序是作为Azure Web App运行的,所以很遗憾我实际上无法看到Web应用程序正在打开多少个连接.:(
小智 -3
根据我的观点,使用语句关闭您的连接,但您明确告诉打开一个连接,如下所示:
using (var db = new SqlConnection(_connectionString))
{
db.open();
return db.Query("dbo.SomeQuery");
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4247 次 |
| 最近记录: |