Форум: "WinAPI";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизКопирование в службе и права доступа Найти похожие ветки
← →
Warlock © (2005-08-17 11:55) [0]В службе производится копирование файла в каталог сервера другого домена, используется функция CopyFile. Домены связаны доверительными отношениями. При копировании файла получаю ошибку доступа. Тот же код в обычной программе естествено работает нормально. Я знаю, что службы запускаются от имени системы. Попытка использовать функцию WNetAddConnection3 с указанием имени пользователя и пароля в службе привела к тому, что она перестала запускаться (скорее всего в службах ее использовать нельзя). Подскажите в каком направлении копать.
← →
Leonid Troyanovsky © (2005-08-17 12:22) [1]
> Warlock © (17.08.05 11:55)
> В службе производится копирование файла в каталог сервера
> другого домена, используется функция CopyFile. Домены связаны
> доверительными отношениями. При копировании файла получаю
> ошибку доступа. Тот же код в обычной программе естествено
> работает нормально. Я знаю, что службы запускаются от имени
> системы. Попытка использовать функцию WNetAddConnection3
> с указанием имени пользователя и пароля в службе привела
> к тому, что она перестала запускаться (скорее всего в службах
> ее использовать нельзя). Подскажите в каком направлении
> копать.
А зачем CopyFile? Лучше пользовать File replication service.
Ну, а так, можно пускать сервис от имени некоего юзера,
скажем, из группы Backup Operators.
--
Regards, LVT.
PS Для серверов функции начинаются с Net*.
← →
BiN © (2005-08-17 12:28) [2]Warlock © (17.08.05 11:55)
Я знаю, что службы запускаются от имени системы.
С помощью оснастки Services или ф-и ChangeServiceConfig можно настроить запуск службы от имени другой учетной записи.
Попытка использовать функцию WNetAddConnection3 с указанием имени пользователя и пароля в службе привела к тому, что она перестала запускаться (скорее всего в службах ее использовать нельзя).
Какова ошибка?
← →
Warlock © (2005-08-17 12:30) [3]Насчет сервера я может и зря написал, это может быть машина с любой ОС на основе NT.
File replication service не устраивает по причине, что этот файл - база данных, и она не может быть одинаковой в доменах, но изменения из одной должны вноситься в другую и наоборот.
Выход есть - параметр службы "Вход с учетной записью..."
Может быть есть функции копирования, позволяющие представляться, те посылать имя и пароль пользователя..
← →
Warlock © (2005-08-17 12:31) [4]BiN © (17.08.05 12:28) [2]
Какова ошибка?
При запуске службы, она сообщает что ей нечего делать и останавливается
← →
BiN © (2005-08-17 12:36) [5]Warlock © (17.08.05 12:31) [4]
При запуске службы, она сообщает что ей нечего делать и останавливается
Прям так и сказала: "Мне нечего делать"?
Warlock © (17.08.05 12:30) [3]
Может быть есть функции копирования, позволяющие представляться, те посылать имя и пароль пользователя
Таких функций нет, но есть такая вещь как олицетворение (impersonation).
← →
Warlock © (2005-08-17 12:41) [6]Благодарю, но олицетворением вряд ли воспользуюсь, т.к. не в курсе..
← →
Leonid Troyanovsky © (2005-08-17 12:41) [7]
> Warlock © (17.08.05 12:30) [3]
> File replication service не устраивает по причине, что этот
> файл - база данных, и она не может быть одинаковой в доменах,
> но изменения из одной должны вноситься в другую и наоборот.
Ну, и как CopyFile может вносить изменения в базу?
Приличные же серверы поддерживают репликацию сами.
Ну, а остальные могут запрашивать изменение сами,
через некоторый DB connection.
--
Regards, LVT.
← →
Warlock © (2005-08-17 12:45) [8]CopyFile используется только для передачи готовой дельты между базами, службы формируют ее сами. Канал просто плохой..
← →
Leonid Troyanovsky © (2005-08-17 12:53) [9]
> Warlock © (17.08.05 12:45) [8]
> CopyFile используется только для передачи готовой дельты
> между базами, службы формируют ее сами. Канал просто плохой..
Дык, для плохого канала лучше передавать стрим самому через
сокет, а не задействовать CopyFile.
--
Regards, LVT.
← →
Warlock © (2005-08-17 13:10) [10]Можно попробовать через сокет.. Правда у меня эта служба и так жирная до предела..
← →
Warlock © (2005-08-17 13:14) [11]BiN © (17.08.05 12:36) [5]
Warlock © (17.08.05 12:31) [4]
При запуске службы, она сообщает что ей нечего делать и останавливается
Прям так и сказала: "Мне нечего делать"?
Сообщение при запуске службы:
"Служба <ее имя> на <локальная машина> была запущена и затем остановлена." ну и дальше что некоторые службы так могут делать, траляля..
Это появилось после того, как я указал службе конкретную учетную запись с паролем для входа
← →
Warlock © (2005-08-17 13:19) [12]Строго говоря господа, мне нужно просто скопировать готовый файл и все..
← →
BiN © (2005-08-17 13:34) [13]Warlock © (17.08.05 13:14) [11]
Сообщение при запуске службы:
"Служба <ее имя> на <локальная машина> была запущена и затем остановлена." ну и дальше что некоторые службы так могут делать, траляля..
Это появилось после того, как я указал службе конкретную учетную запись с паролем для входа
Очевидно, это все та же ошибка в 17-й строке.
Речь, вообще-то, шла о значении, возвращенном функцией WNetAddConnection3.
← →
Warlock © (2005-08-17 13:37) [14]В том то все и дело, что в этом варианте службы функции WNetAddConnection3 нет, а есть только обращение к базе данных через ADO и копирование файла..
← →
Leonid Troyanovsky © (2005-08-17 13:47) [15]
> Warlock © (17.08.05 13:19) [12]
> Строго говоря господа, мне нужно просто скопировать готовый
> файл и все..
У Anatoly Podgoretsky на сайте есть набор FAQ.
Посмотри internet, там есть пример передачи стрима.
Ну, конечно, для организации докачки и пр.
нужно еще немного поработать.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c