мы используем некоторые частные очереди MSMQ с нашей производственной системой. С момента внедрения нам пришлось обновлять некоторые вещи с помощью очередей и заново создавать их для работы с обновленным кодом. У нас более 200 машин, которым нужны эти обновления, поэтому я работаю над программой, которая будет отправлена через SMS для этого обновления.
Что я замечаю, так это то, что единственный, кто может запустить мою программу для обновления, - это тот, кто изначально настроил личную очередь на этой конкретной машине. Из-за количества машин было несколько администраторов, которые настраивали эти очереди.
Поскольку не все сотрудники все еще работают здесь, это вызывает у меня [мою программу] проблему. Разрешения не позволяют программе обновлять все, что мне нужно. Я гуглил и нашел эту ссылку http://social.msdn.microsoft.com/Forums/hu-HU/msmq/thread/36a3d910-d533-4af3-86dc-498d00c68fef, которая показывает, как обновить разрешения путем изменения файла, который создается для каждой из очередей. Большой! Это работает, когда я вручную перехожу по этому пути и делаю обновление. Теперь я хочу сделать это программно с помощью SMS push.
При попытке запустить это из моей программы я получаю сообщение об ошибке, в котором говорится, что каталог не существует "C: \ Windows \ System32 \ msmq \ storage \ lqs". А? Когда я ввожу этот путь в Пуск-> Выполнить, он просто вызывает папку. Что ж, нарушение части if (Directory.Exists (path)) моего кода определенно возвращает false. Если я удаляю все папки, кроме System32, то Directory.Exsts работает просто отлично.
Почему моя программа не может определить, существует ли эта папка msmq? Я пытался "работать от имени администратора", и он по-прежнему возвращает ложь. Что мне нужно сделать, чтобы этот чек заработал?
Спасибо
Edit: это действительно странно, у меня есть API FindAndReplace, который я написал, который будет брать путь (файл или каталог), находить текст, заменять текст и т. Д. Когда я запускаю эту программу из моего Find And Replace Оболочка GUI, она работает просто отлично. Но когда я вызываю этот API из моей программы обновления, он говорит, что каталог не существует. Это действительно сбивает с толку. (Вероятно, мне следует удалить тег MSMQ, поскольку он не имеет ничего общего с моим вопросом ...)