在开发一个相对简单的 Web 服务时,该服务将提供的数据通过 post 方式记录在数据库表中,结果我们遇到了这个错误:
Exception caught: The remote server returned an error: (500) Internal Server Er or. Stack trace: at System.Net.HttpWebRequest.GetResponse()
在某些服务器上出现此问题,但其他服务器没有。出现问题的是物理服务器,而其他服务器则是虚拟机,显然物理服务器更加强大。
据我们所知,问题在于每次查询后,DB连接没有被释放回池中。我使用如下的using模式:
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()调用以确保当方法结束时连接被释放,但我不知道是否必要。
我使用这个模式正确吗?还有别的什么我需要做以确保连接正确地返回到池中吗?
谢谢!