我的网站大部分时间都运行良好,但有时我会收到超时过期错误,并且在1-15分钟内无法执行任何操作。第一次出现错误时:
The timeout period elapsed prior to completion of the operation or the server is not responding.
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) (...)
之后,如果我尝试刷新页面,我会继续:
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)
(...).
我使用的每个连接都是SqlDataSource
,或者使用以下代码打开:
SqlConnection myConnection = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Faktury_RebuildConnectionString"].ToString());
SqlCommand myCommand = new SqlCommand("Command String", myConnection);
try{
myConnection.Open();
somecodehere()
}
finally
{
if (myConnection != null)
{
myConnection.Close();
}
}
我web.config
中的连接字符串是Data Source=xxx\;Initial Catalog=xxx;User ID=xxx;Password=xxx;Max Pool Size=100;
。
我试图关闭合并,但没有帮助。我检查了每个连接是否正确处理,确实如此。所有SELECT
都很好 - 意味着它们不会花费太多时间。特别是我可以看到应用程序运行正常时。
当我离开我的网站一段时间(15-60分钟)并且第一次再次输入时,也会发生此错误;那么我需要做的就是刷新它然后工作正常。
在出现此错误时,SQL Server工作正常,其他网站使用大多数相同的选择查询都可以正常工作。
有人建议那里可能有什么问题吗?我已经没想完了。
编辑: 至少在闲置较长时间后不必刷新页面并使这一次超时到期时,这将是有用的。
答案 0 :(得分:0)
ADO.NET中有两个主要的Timeout属性。