Если вы хотите ограничить его только одним сеансом, вы можете создать именованный мьютекс в локальном пространстве имен, чтобы ограничить его видимость в вашем сеансе. Когда клиент хочет подключиться
он может создать тот же мьютекс, и если он вернется как последний код ошибки ERROR_ALREADY_EXISTS, он знает, что в текущем сеансе сервер канала является.
Вы можете получить текущий номер сеанса вашего процесса через ProcessIdToSessionId , чтобы вы могли создать именованный сервер канала с идентификатором сеанса в его имени.
[DllImport("kernel32.dll",SetLastError=true)]
static extern int ProcessIdToSessionId(int pid, ref int session);
Addenum:
Чтобы получить текущий идентификатор сессии, вы можете просто использовать Process.GetCurrentProcess (). SessionId вместо подписи PInvoke, определенной выше.