Вручное время ожидания команды SQL Server
-
28-10-2019 - |
Вопрос
У меня был тестовый хост Windows (50 МБ), который обслуживал мое веб -приложение ASP.NET, оно сработало почти хорошо, но после того, как оно было обновлено до 100 МБ, я получал частые ошибки тайм -аута SQL Server, пытаясь удаленно подключить SQL Server с Visual Студия (т.е. в локальной разработке моего сайта), я попытался вручную увеличить тайм -аут команд SQL, и я думаю, что это было каким -то образом решено, но я думаю, что мои действия не правы, конечно Все отлично работает для конечных пользователей, у меня были только проблемы при разработке сайта и доступа к моей удаленной базе данных через VS2010, я действительно должен рассмотреть возможность увеличения тайм -аута? Как я могу глобально увеличить тайм -аут? Должен ли я установить свойство CommandTimeout для каждой команды SQL? Можно ли увеличить его по строке соединения? Конечно, поскольку я в настоящее время использую общий хост, я не могу изменить настройки студии управления SQL Server
Пожалуйста, направьте меня по этой проблеме, так как у меня нет хорошего чувства относительно собственности тайм -аута! Благодарность
Решение
Я не думаю, что есть какой -нибудь простой способ установить это глобально - например, в строке соединения или что -то в этом роде.
То, что вы могли бы сделать (но это требует, чтобы ваш код работал таким образом), так это поместить время ожидания вашей команды в конфигурацию:
<configuration>
<appSettings>
<add name="CommandTimeout" value="120" />
</appSettings>
</configuration>
а затем в вашем коде прочитайте это значение из конфигурации и используйте его для вашего SqlCommand
Занятия:
int commandTimeout = Convert.ToInt32(ConfigurationManager.AppSettings["CommandTimeout"]);
using(SqlCommand cmd = new SqlCommand(..(your SQL statement)..., connection))
{
cmd.CommandTimeout = commandTimeout;
}
При этом вы можете хотя бы настроить тайм -аут, не изменяя свой код.