Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Управление службой из приложения (Remoting), Проблема ДОСТУПА 
:(
    Опции темы
opozdaika
Дата 28.4.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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, а не сразу отлуп?

Спасибо. 

PM MAIL   Вверх
mr.DUDA
Дата 28.4.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Можно попробовать в свойствах службы указать под каким аккаунтом она запускается. Указать там пользовательский аккаунт.


--------------------
user posted image
PM MAIL WWW   Вверх
opozdaika
Дата 28.4.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 28.4.2008

Репутация: нет
Всего: нет



Цитата(mr.DUDA @ 28.4.2008,  14:04)
Можно попробовать в свойствах службы указать под каким аккаунтом она запускается. Указать там пользовательский аккаунт.

Я так и сказал, что под пользовательским аккаунтом служба позволяет работу ipc. Но обычные службы должны запускаться под системным или локал-сервер аккаунтом. Я бы тоже так хотел.

Это сообщение отредактировал(а) opozdaika - 28.4.2008, 14:30
PM MAIL   Вверх
mr.DUDA
Дата 28.4.2008, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Цитата(opozdaika @  28.4.2008,  14:29 Найти цитируемый пост)
Но обычные службы должны запускаться под системным или локал-сервер аккаунтом

А нельзя вручную забить в Properties службы нужный аккаунт? Ногами не бить, не проверял на юзерах с ограниченными правами.


--------------------
user posted image
PM MAIL WWW   Вверх
opozdaika
Дата 26.4.2010, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 28.4.2008

Репутация: нет
Всего: нет



Я хотел бы сообщить, как решились мои вопросы.

1. Для запуска и останова службы , работающей под уч записью Local Service, средствами ServiceController я применяю подход, описанный в 
http://vstslive.wordpress.com/
А именно, в манифесте нужно прописать:
<requestedExecutionLevel level=”requireAdministrator” uiAccess=”false” />
В этом случае при старте программы выдается окно подтверждения на запуск от имени администратора. Конечно, лучще было бы выдавать запрос не при старте программы, а непосредственно перед выполнением действия по старту/остановке службы. Но это уже и так огромный прогресс.

2. Проблемы с Remouting решились после отказа от Remouting в пользу кошачей технологии (с неудобопроизносимым названием CWF). 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0766 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.