数据库连接释放问题引起的“与服务器的连接被重置”
2013-07-18 14:54
260 查看
最近在业务系统中写了个下载文件的接口,供公司的其他工具下载业务系统中的文件。结果在下载文件时发现,文件下载了一部分就无法再下载。系统提示“与服务器的连接被重置” 。有时候甚至不会提示 ,IE的保存进度框会突然消失不见。
![](https://img-blog.csdn.net/20130718143350109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvam9rZTAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
一开始以为是C#.NET或者IIS的问题。因为在本机VS2010里调试时没有任何问题,文件能顺利下载。
因为在服务器上打开IE下载也不行,所以可以排除网络和防火墙问题。
求助度娘和谷哥了大半天,没有找到任何能解决我问题的方法。
自己在业务系统中写的调试日志也没起什么作用,出问题的代码位置似乎有些随机性。
后来看了服务器的系统日志,发现了以下错误:
然后又通过屏蔽不同位置的代码,终于定位到了错误:
这次的问题是由于数据库连接未及时被释放引起的。
一开始以为是C#.NET或者IIS的问题。因为在本机VS2010里调试时没有任何问题,文件能顺利下载。
因为在服务器上打开IE下载也不行,所以可以排除网络和防火墙问题。
求助度娘和谷哥了大半天,没有找到任何能解决我问题的方法。
自己在业务系统中写的调试日志也没起什么作用,出问题的代码位置似乎有些随机性。
后来看了服务器的系统日志,发现了以下错误:
发生未处理的异常,并已终止进程。 Application ID: /LM/W3SVC/6/ROOT Process ID: 316 Exception: System.InvalidOperationException Message: 内部 .Net Framework 数据提供程序错误 1。 StackTrace: 在 System.Data.ProviderBase.DbConnectionInternal.PrePush(Object expectedOwner) 在 System.Data.ProviderBase.DbConnectionPool.PutObject(DbConnectionInternal obj, Object owningObject) 在 System.Data.ProviderBase.DbConnectionInternal.CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory) 在 System.Data.SqlClient.SqlInternalConnection.CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory) 在 System.Data.SqlClient.SqlConnection.Close() 在 System.Data.SqlClient.SqlConnection.Dispose(Boolean disposing) 在 System.ComponentModel.Component.Dispose() 在 BLL.DataConnection.Finalize()
然后又通过屏蔽不同位置的代码,终于定位到了错误:
ProcedureBLL b = new ProcedureBLL(new DataConnection()); //其他代码……正确写法应该为:
using (DataConnection c = new DataConnection()) { ProcedureBLL b = new ProcedureBLL(c); //其他代码…… }
这次的问题是由于数据库连接未及时被释放引起的。
相关文章推荐
- 关于数据库查询语句SqlDataReader的连接释放问题的解决办法
- 使用hibernate数据库连接不释放的问题
- Android通过webservice连接SQLServer 详细教程以及所遇到的问题解答(数据库+服务器+客户端)
- 数据库连接问题——未找到或无法访问服务器
- tcp_timestamps tcp_tw_recycle引起的服务器连接不上问题
- Oracle客户端工具连接数据库服务器问题汇总
- 同步复制数据库,当网络问题,服务器间断开连接,复制中断后,自动继续复制的设置
- 在启用sharepoint portal server 2003的SSO时,提示“无法连接到数据库服务器,请检查配置账户的权利”的问题的解决方法
- 页面提交后提示“连接被重置”或“载入页面时到服务器的连接被重置”的问题分析
- 超出TCP连接端口数限制(MaxUserPort)引起的服务器问题
- sqlserver创建服务器连接,及同构数据库同步问题
- SSH+Easyui应用部署至新浪服务器数据库连接及问题
- asp.net 网站发布到服务器上 数据库连接问题
- Toad for Mysql 连接远程服务器的数据库问题记录
- 数据库连接问题——服务器启动不了
- Navicat 连接远程服务器 mysql 数据库 的问题
- 解决 web服务器部署常见问题,server application unavailable 和 程序无法连接数据库 的问题(asp.net 2.0 + oracle9i + winXP)
- SSH 占用数据库连接不释放问题
- firefox 缓存问题导致“载入页面时到服务器的连接被重置”
- 解决 web服务器部署常见问题,server application unavailable 和 程序无法连接数据库 的问题(asp.net 2.0 + oracle9i + winXP)