.NET Web应用连接SQL2005超时
各位大侠:我今天在部署web应用时,遇到一个问题,当数据库和web应用都在内网时,应用一切正常。当把web应用移到外网服务器(防火墙安全级别比较高)时,web应用服务器连接数据库服务器,当取多数据时就会老报以下这个异常:
System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()。
比如:[table]有5000条记录,用select top 33 * from [table] 正常。当取多余34条数据时就会报上述那个异常:select top 35 * from [table];数据库执行这条语句只有几毫秒.
各位高手有没有什么好的解决方法 --------------------编程问答-------------------- 检查数据库连接字符串 --------------------编程问答-------------------- 设置下连接时间看看:
--------------------编程问答-------------------- 在数据库连接字符串,添加一下Max Pool Size = 512;同时把不用的连接关闭。 --------------------编程问答--------------------
OleDbDataAdapter sqlDA = new OleDbDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
sqlDA.SelectCommand.CommandTimeout = 1200;//设置连接时间
sqlDA.Fill(dataSet, tableName);
如果数据库连接字符串有问题,取30条数据怎么能成功? --------------------编程问答--------------------
数据库执行很快,而且在内网时没有问题,我怀疑不是网络防火墙做了什么限制 --------------------编程问答-------------------- --------------------编程问答-------------------- command查询也有限制时间的
你数据量多了会超时。
2楼的方法你试下。
补充:.NET技术 , ASP.NET