Не виден named mutex созданный windows сервисом.
От: Аноним  
Дата: 21.03.08 09:40
Оценка:
Господа, кто с таким сталкивался.
В windows сервисе (не важно под каким account запускается) создается именованный мьютекс с "хорошими" правами доступа:

string mutname = "testMutexWinSrvTest";
bool muNew;

MutexSecurity mSec = new MutexSecurity();
SecurityIdentifier sidOwner = new SecurityIdentifier(WellKnownSidType.CreatorOwnerSid, null);
SecurityIdentifier sidAuthUser = new SecurityIdentifier(WellKnownSidType.AuthenticatedUserSid, null);

MutexAccessRule rule = null;
rule = new MutexAccessRule(sidOwner, MutexRights.FullControl, AccessControlType.Allow);
mSec.AddAccessRule(rule);
rule = new MutexAccessRule(sidAuthUser, MutexRights.FullControl, AccessControlType.Allow);
mSec.AddAccessRule(rule);

this.testmutex = new Mutex(true, mutname, out muNew, mSec);

Запускается некоторое приложение, которое проверяет существование мьютекса,
скажем при помощи Mutex.OpenExisting(...). Вылетает exception — No handle of the given name exists.
При этом если таким же образом создать мьютекс в консольном приложении, то Mutex.OpenExisting(...)
возвращает мьютекс и никаких ошибок не возникает.

Такое поведение наблюдается под Vista, Server 2003. Под ХР, кстати, все хорошо.

Кто что может сказать ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.