![](/img/trans.png)
[英]what is the easiest way to have multiple db connections when using linq
[英]Running out of DB connections using LINQ to SQL
在开发一个相对简单的Web服务时,该服务采用了帖子提供的数据并将其记录在数据库表中,因此出现了以下错误:
捕获到异常:远程服务器返回错误:(500)Internal Server Er or。 堆栈跟踪:位于System.Net.HttpWebRequest.GetResponse()
在某些服务器上,但在其他服务器上没有。 获得此功能的是物理机,其他是虚拟机,显然物理服务器的功能要强大得多。
据我们所知,问题在于在每次查询后数据库连接都没有释放回池中。 我正在使用以下使用模式:
using (VoteDaoDataContext dao = new VoteDaoDataContext())
{
dao.insert_response_and_update_count(answerVal, swid, agent, geo, DateTime.Now, ip);
dao.SubmitChanges();
msg += "Thank you for your vote.";
dao.Dispose();
}
我添加了dao.Dispose()调用以确保在方法完成时释放连接,但是我不知道是否有必要。
我是否正确使用此模式? 我还需要做其他事情来确保连接正确返回到池中吗?
谢谢!
您的诊断信息不够好。 HTTP / 500的详细信息不足以真正说明您的理论是否正确。 如果要解决此问题,您将需要在日志记录中捕获完整的堆栈跟踪。 我想您已经在这里得出结论了。 不,在using {}块结束之前,不需要Dispose()。 那就是using {} 所做的 。
我以为dispose()调用是多余的,但我想确定一下。
我们看到SQL日志中的连接池已饱和(我不能直接看,我只是一名开发人员,并且这些东西都在产品环境中运行),我的操作人员说他正在看到连接超时。 ..并且一旦超时,服务器将再次运行,直到下次饱和连接池为止。
目前,我们正在调整连接池设置的过程中...我想确定自己没有做错任何事情,因为这是我第一次使用Linq。
谢谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.