У меня есть приложение ac # / WPF, которое на некоторых клиентских сайтах работает через RPD, то есть приложение находится на клиентском сервере, и пользователи получают доступ через сеансы терминальных служб.
Проблема, с которой я сталкиваюсь, заключается в том, что я могуне допустить случайного открытия нескольких экземпляров приложения.Когда приложение работает локально на компьютере, я могу заблокировать несколько экземпляров, используя следующее:
var processName = Process.GetCurrentProcess().ProcessName;
if (Process.GetProcesses().Count(p => p.ProcessName.Equals(processName)) > 1)
{
this.Log.LogInfo(this.GetType(), "Process already running. Shutting down.");
Application.Current.Shutdown();
Process.GetCurrentProcess().Kill();
}
Однако, при использовании RPP это не будет работать, так как могут быть другие экземпляры приложения, работающие на другом RDP.сессий.
Кто-нибудь знает, как я могу отключить второй экземпляр приложения, работающий в том же сеансе RDP?