Как может поддержать SqlConnection (или использующий другой компонент) открытый (соединяемый) всегда во время выполнения моего приложения .NET?
Мне нужно это, потому что мое приложение должно обнаружить использование этого commnad
exec sp_who2
сколько экземпляров моего приложения подключено к mydatabase, для ограничения доступа (управление лицензией).
пример
A) мое приложение выполняется от location1
exec sp_who2
B) мое приложение выполняется от location2
exec sp_who2
жаль о моем английском языке.
заранее спасибо.
Используйте пул соединений . Установите Максимальный размер пула и Минимальный размер пула и Пул в строке подключения.
Myabe Вы можете создать объект соединения, открыть его и сохранить в глобальной (статической) переменной. Я полагаю, что вам также придется установить таймаут соединения, иначе оно будет автоматически закрываться, если будет простаивать.
Говоря откровенно, я не думаю, что держать соединение открытым - хорошая идея, поскольку они дорого стоят.
Не проще ли просто иметь таблицу, в которую добавлять запись при запуске программы и удалять ее при выходе из программы? Постоянно держать открытым соединение с SQL Server довольно дорого.
Технически, кто-то может прийти, удалить запись и запустить новый экземпляр, но очевидно, что если он это сделает, то первый экземпляр перестанет работать (предполагая, что он время от времени проверяет наличие своей собственной записи).