2015-01-07 2 views
0

я получаю следующее сообщение об ошибке после размещения заявки:таймаута истекшее до получения соединения из пула

Ошибка страницы: 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. Практики.EnterpriseLibrary.Data.Database.GetOpenConnection (Boolean disposeInnerConnection) в Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteReader (команда DbCommand) в DataLayer.Quotation_DL.insertQuoteproduct (QuotationProductCombination _objQP) в F: \ gayathri reddy \ Enq Quote \ 06-01-2015 \ DataLayer \ Quotation_DL.cs: строка 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, String oper) в F: \ gayathri reddy \ Enq Quote \ 06-01-2015 \ EngQuote \ Presentation Layer \ NewQuotation.aspx.cs: строка 3711

Но при запуске кода в локальной Visual Studio 2010 нет проблемы, когда я размещаю его в сервер или локальный компьютер I IS или Shared хостинг сервера на то время только мы сталкиваемся этим вопросом

Я пытался соблюдать все эти шаги, но не получил никакого улучшения

1) .Opened и закрыл соединение в каждой функции DL

2). Увеличен тайм-аут команды таким образом DbCommand cmd = db.GetStoredProcCommand ("Procedureurename"); cmd.CommandTimeout = int.MaxValue; SqlDataReader sdata = (SqlDataReader) db.ExecuteReader (cmd);

3). Увеличение времени соединения в веб-конфигурации

4). Увеличение ExecutionTimeout в веб-конфигурации

5). Увеличение времени выключения

6).Измененный отлаживать = ложь

, но не использовать, время соединения вне проблема все еще существует для длительных процессов Пожалуйста, предложить какие-либо решения, кроме указанных выше вариантов Ожидая хорошее решение для этого вопроса от и народов заранее спасибо ....

+0

Является ли соединение «статическим»? Используете ли вы 'use'-statement, чтобы он был закрыт как можно скорее? Показать код. –

+0

DbConnection con = sqldb.CreateConnection(); try { con.Open(); int CusIdent = Convert.ToInt32 (sqldb.ExecuteScalar ("spInsertCustomerCompanyGroup", objCustGrp.GroupName, objCustGrp.CreatedBy, objCustGrp.CreatedDate)); return CusIdent; } , наконец { con.Close(); } –

+0

привет, я не использую (используя инструкцию), проверьте следующее DbConnection con = sqldb.CreateConnection(); попробуйте {con.Open(); int CusIdent = Convert.ToInt32 (sqldb.ExecuteScalar ("spInsertCustomerCompanyGroup", objCustGrp.GroupName, objCustGrp.CreatedBy, objCustGrp.CreatedDate)); return CusIdent; } наконец {con.Close(); } –

ответ

1

Я предполагаю, что соединение между IIS и SQL Server было слишком медленным, чтобы обслуживать соединение. Просто убедитесь, что максимальное ограничение соединения не достигнуто. Вы можете подтвердить, выполнив команду select 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;

+0

thank u for ur ответ друг, я пробовал этот запрос в sql, но показывает NumberOfConnections 1 и я увеличил максимальный размер пула до 300 –

Смежные вопросы

 Смежные вопросы