Как добавить 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;