Как добавить CommandTimeout в строку подключения в web.конфиг
Как добавить CommandTimeout в строку подключения в web.конфиг?
пробовал:
<add name="ConnectionString" connectionString="Data Source=;Initial Catalog=;Persist Security Info=True;User ID=sa;Password=sa@123;Connect Timeout=200" providerName="System.Data.SqlClient"/>
</connectionStrings>
и так:
<add name="MyProject.ConnectionString"
connectionString="Data Source=127.0.0.1;Initial Catalog=MyDB;Persist Security Info=True;CommandTimeout=60;User ID=sa;Password=saPassw0rd"
providerName="System.Data.SqlClient" />
но это не сработало для меня.
спасибо
4 ответов
Я сделал так:
private readonly MyDbContext _context;
public LinqToSql() : this(new MyDbContext())
{
}
private LinqToSql(MyDbContext context)
{
_context = context;
_context.CommandTimeout = 500;
}
насколько я знаю, нет глобального способа установки свойства тайм-аута команды, вы должны установить свойство CommandTimeout индивидуально для каждого объекта команды, который вы создаете.
вы можете установить тайм-аут в настройках и ссылаться на это значение, когда тайм-аут команды установлен.
В config в разделе appSettings добавьте ключ для CommandTimeout:
<add key="ContextCommandTimeout" value="500" />
потом в коде:
int cmdTimeout = -1;
string timeoutSettings = ConfigurationManager.AppSettings["ContextCommandTimeout"];
if(!string.IsNullOrEmpty(timeoutSettings))
{
int.TryParse(timeoutSettings, out cmdTimeout);
}
if(cmdTimeout >=0)
_context.CommandTimeout = cmdTimeout;
Если вы хотите поместить его в свою сеть.конфигурации, вам нужно добавить пробел. Попробуйте:
Command Timeout=60;
вместо:
CommandTimeout=60;