Один экземпляр программы

209
26 мая 2018, 00:10

Допустим, есть некоторая программа, которая что то делает с базой. Пользователи могут запускать ее на разных машинах. Можно ли сделать так, что бы не смотря на то, что программы работают на разных машинах, что бы несмотря на это могла работать только 1 программа. Была мысль эксклюзивно блокировать таблицы, но может быть ещё решения? Запускаются программы от 1 учетки. Может быть программа, как то может идентифицировать своё соединение например названием программы, а другой экземпляр мог бы проверить не ют ли уже соединений?

Answer 1

Да, название программы можно передать через соединение

string connStr = ConfigurationManager.ConnectionStrings["AWConnection"].ToString();
SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(connStr);
sb.ApplicationName = "MySuperApp";
SqlConnection conn = new SqlConnection(sb.ToString());
//ну и далее...

А потом уже в SQL Server можно сделать запрос к sys.dm_exec_session и в столбце program_name обнаружить название нашей проги, а столбце login_time время начала сессии.

Answer 2

Пусть программа каждые скажем 5 сек отправляет в базу какие нибудь данные с уникальным ключем, и при присутствии этих данных другие клиенты не смогут работать.

READ ALSO
Как называется кнопка для работы с dataGridView

Как называется кнопка для работы с dataGridView

Как называется кнопка для работы с dataGridView те

169
Вместо нанесения урона сразу убивает

Вместо нанесения урона сразу убивает

у меня проблемка небольшая

191
Как отправить корректно POST запрос на WebApi C#?

Как отправить корректно POST запрос на WebApi C#?

Взялся за изучение NetCoreЗахотел проверить самописное WebApi на простых запросах используя JavaScript

202
WPF hitTest на сам UserControl

WPF hitTest на сам UserControl

Есть у меня UserControl под именем PinВнутри него есть несколько элементов Path

196