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