我在托管申请后遇到以下错误:
错误页面:http://********.in/Presentation Layer / NewQuotation.aspx
错误消息:超时已过期。从池中获取连接之前经过的超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。
StackTrace:在System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection,TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1重试,DbConnectionOptions userOptions)
在System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource 1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1重试)
在System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1重试)
在System.Data.SqlClient.SqlConnection.Open()
在Microsoft.Practices.EnterpriseLibrary.Data.Database.GetNewOpenConnection()
在Microsoft.Practices.EnterpriseLibrary.Data.Database.GetOpenConnection(Boolean disposeInnerConnection)
在Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteReader(DbCommand命令)
在F:\ gayathri reddy \ Enq Quote \ 06-01-2015 \ DataLayer \ Quotation_DL.cs中的DataLayer.Quotation_DL.insertQuoteproduct(QuotationProductCombination _objQP):第430行
在BusinessLayer.Quotation_BL.insertQuoteproduct(QuotationProductCombination _objQpc)中的F:\ gayathri reddy \ Enq Quote \ 06-01-2015 \ BusinessLayer \ Quotation_BL.cs:第88行
在EngQuote.Presentation_Layer.NewQuotation.Quotationsave(Int32 status,String oper)中的F:\ gayathri reddy \ Enq Quote \ 06-01-2015 \ EngQuote \ Presentation Layer \ NewQuotation.aspx.cs:line 3711
但是在本地Visual Studio 2010中运行代码时没有问题,当我在服务器或本地计算机IIS或共享主机服务器中托管它时,我们只面临这个问题
我尝试过所有这些步骤,但没有任何改进
1)。在每个DL功能中打开并关闭连接
2)。以这种方式增加命令时间 DbCommand cmd = db.GetStoredProcCommand(" Procedurename"); cmd.CommandTimeout = int.MaxValue; SqlDataReader sdata =(SqlDataReader)db.ExecuteReader(cmd);
3)。在Web配置中增加连接超时
4)。在web配置中增加executionTimeout
5)。增加关机时间
6)。更改了debug = false
但没有用,长时间进程仍然存在连接超时问题 请建议除上述选项以外的任何解决方案 期待来自各国人民的这个问题的良好解决方案 提前谢谢....
答案 0 :(得分:3)
我认为IIS和SQL Server之间的连接速度太慢,无法提供连接。只需确保未达到最大连接限制。您可以通过执行以下select语句来确认。
SELECT
DB_NAME(dbid) as DBName,
COUNT(dbid) as NumberOfConnections,
loginame as LoginName
FROM
sys.sysprocesses
WHERE
dbid > 0
GROUP BY
dbid, loginame
您可以尝试增加连接字符串中的池大小。但这会有一些缺点。下面是池大小增加的示例连接字符串。
server=localhost;database=dbname;uid=username;pwd=paswrd;Max Pool Size=200;