当前位置:编程学习 > C#/ASP.NET >>

用asp.net做的oa系统架到公司内网后,经常导致公司服务器的数据库断开连接,这是怎么回事?

开始认为是数据库操作以后,连接没有关闭,但查看SQLHelper发现,是用using处理的。应该不会有未释放的连接。


浏览器提示:



“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

超时时间已到。在操作完成之前超时时间已过或服务器未响应。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: 超时时间已到。在操作完成之前超时时间已过或服务器未响应。

源错误: 

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  

堆栈跟踪: 


[SqlException (0x80131904): 超时时间已到。在操作完成之前超时时间已过或服务器未响应。]
   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +428
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +65
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
   System.Data.SqlClient.SqlConnection.Open() +122
   OAS.DAL.SQLHelper.PrepareCommand(SqlCommand command, SqlConnection connection, SqlTransaction transaction, CommandType commandType, String commandText, SqlParameter[] commandParameters) in C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\OASystem.root\OASystem\OAS.DAL\SQLHelper.cs:371
   OAS.DAL.SQLHelper.ExecuteNonQuery(CommandType commandType, String commandText, SqlParameter[] parameters) in C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\OASystem.root\OASystem\OAS.DAL\SQLHelper.cs:83
   OAS.DAL.SQLHelper.ExecuteNonQuery(String sql, SqlParameter[] parameters) in C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\OASystem.root\OASystem\OAS.DAL\SQLHelper.cs:50
   OAS.DAL.SQLHelper.ExecuteNonQuery(String sql) in C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\OASystem.root\OASystem\OAS.DAL\SQLHelper.cs:37
   OAS.DAL.OnlineCheckVisiter.Delete(String strWhere) in C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\OASystem.root\OASystem\OAS.DAL\OnlineCheckVisiter.cs:75
   OAS.BLL.OnlineCheckManager.Delete(String strWhere) in C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\OASystem.root\OASystem\OA.BLL\OnlineCheckManager.cs:51
   top_webservice.GetOnlineCount() +202

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.3603; ASP.NET 版本:2.0.50727.3082 
--------------------编程问答-------------------- 贴代码,估计业务逻辑里有未关闭的连接,例如datareader之类的 --------------------编程问答-------------------- 难道哪里设置了一个时间,过了这个时间自动段开啊 --------------------编程问答-------------------- 是不是网络不稳定啊。我们是在网络不稳定的时候报这样的错误,这个时候ping IP经常掉包的。 --------------------编程问答-------------------- 很有可能没有关闭数据库连接 --------------------编程问答-------------------- 假如真的有地方没有关闭数据库,有什么办法可以找到吗?
上百张页面和几层的代码,不好找。。。 --------------------编程问答--------------------
引用 5 楼 zy3365265 的回复:
假如真的有地方没有关闭数据库,有什么办法可以找到吗?
上百张页面和几层的代码,不好找。。。

看项目结构怎么设计的了,
datareader一般在数据访问层; --------------------编程问答-------------------- 大概是你的数据库查询太耗时了吧 --------------------编程问答-------------------- 可能是数据库连接池满了,又或者是同时建立连接太多,而数据库设置的连接上限已到。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,