![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
opozdaika |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 28.4.2008 Репутация: нет Всего: нет |
Пишу под Вистой VS 2008 С# framework 3.5.
Я написал Службу Windows и Приложение (ехе-шник), которое подключается к Службе и производит обмен данными с ней. В своей системе я реализовал два механизма и у обоих проблемы доступа. Вот по-порядку: ---------------------- 1. IPC-remoting для обмена данными между Службой и Приложением. Ipc-сервер реализован в Службе, клиент – мое Приложение Проблема: Работает только если Служба-сервер запущена под пользовательской учетной записью – той же, под которой работает Приложение-клиент. Стоит мне перевести службу под уч. запись Local Service или System (а именно так и должно быть в релизе), в клиенте возникает исключение: "Не удалось подключиться к IPC-порту: Отказано в доступе" Вопрос: Как настроить права Remoting на использование канала, чтобы не было отказа в доступе? -------------------- 2. ServiceController для запуска и останова Службы из Приложения. Проблема: Работает только если Приложение запущено "от имени администратора". При обычном запуске (в том числе и из отладчика) я могу только проверить состояние службы (ServiceController.CanStop), но не могу ее запускать или останавливать: метод ServiceController.Stop() дает исключение: отказ доступа. Вопрос: Как сделать так, чтобы при запуске Приложения не от имени администратора при попытке остановить/запустить Службу полозователю, как это принято в Висте, выдавалось бы предупреждение UAC, а не сразу отлуп? Спасибо. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 2 Всего: 232 |
Можно попробовать в свойствах службы указать под каким аккаунтом она запускается. Указать там пользовательский аккаунт.
-------------------- ![]() |
|||
|
||||
opozdaika |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 28.4.2008 Репутация: нет Всего: нет |
Я так и сказал, что под пользовательским аккаунтом служба позволяет работу ipc. Но обычные службы должны запускаться под системным или локал-сервер аккаунтом. Я бы тоже так хотел. Это сообщение отредактировал(а) opozdaika - 28.4.2008, 14:30 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 2 Всего: 232 |
А нельзя вручную забить в Properties службы нужный аккаунт? Ногами не бить, не проверял на юзерах с ограниченными правами. -------------------- ![]() |
|||
|
||||
opozdaika |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 28.4.2008 Репутация: нет Всего: нет |
Я хотел бы сообщить, как решились мои вопросы.
1. Для запуска и останова службы , работающей под уч записью Local Service, средствами ServiceController я применяю подход, описанный в http://vstslive.wordpress.com/ А именно, в манифесте нужно прописать: <requestedExecutionLevel level=”requireAdministrator” uiAccess=”false” /> В этом случае при старте программы выдается окно подтверждения на запуск от имени администратора. Конечно, лучще было бы выдавать запрос не при старте программы, а непосредственно перед выполнением действия по старту/остановке службы. Но это уже и так огромный прогресс. 2. Проблемы с Remouting решились после отказа от Remouting в пользу кошачей технологии (с неудобопроизносимым названием CWF). |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |