У меня есть консольное приложение, написанное на C# 4.0. Я запускаю хранимую процедуру SQL, которая иногда занимает слишком много времени и генерируется исключение таймаута соединения.C# .net Консольное приложение Свойство SQLCommand.CommandTimeOut не работает
Чтобы обработать его, я сначала установил Timeout на 360 в строке подключения в файле web.config, но не повезло.
Тогда я попробовал:
SQLCommand cmd = new SQLCommand();
cmd.CommandTimeout = 360;
, но это тоже не работает.
Любая помощь была бы принята с благодарностью. Я попытался сделать то же самое с Entity Framework 4.0, но имел ту же проблему. Значение тайм-аута, которое я предоставляю, не применяется!
<add name="ConnectionString" connectionString="SERVER=db.mydomain.com;DATABASE=DatabaseName;UID=userID;PWD=Password;Connect Timeout=360;Packet Size=8192;Pooling=True;Min Pool Size=1;Max Pool Size=1000;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
Исключение:
Timeout expired: The timeout period elapsed prior to completion of the operation or the server is not responding.
Итак, вы хотите 6-минутный тайм-аут, и он по-прежнему синхронизируется по умолчанию 30 секунд? – McGarnagle
@ dbaseman да, вы правы. – HaBo
Я думаю, что вы путаетесь с command.CommandTimeout и таймаутом соединения. В вашей веб-конфигурации вы указали время ожидания подключения до 360 – praveen