| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Служба Windows и общие папки |
| Автор: pushok 24.6.2014, 20:54 | ||
| Доброго времени суток! Вопрос следующий: сделал самую простую службу ОС Windows: 1 стандартная процедура (ServiceController) и стандартная функция (GetServiceController) + 1 процедура (ServiceExecute) с небольшим кодом (ниже листинг)
Пояснение: - в ... (троеточии) спрятано многое (определение переменных и их использование), - каждые 30 (timer2) секунд должны убиваться проекты с названиями из массива pr[] - из файлов я считываю и туда записываю параметры (ну например значение таймера и имена процессов) Вопрос такой: если в процедуре AssignFile указан путь к локальной папке (например D:\000\) все работает прекрасно, но если указан путь к ПК в локальной сети (как в листинге например), то служба не работает (в файл запись не идет и служба останавливается сразу после запуска). *папка на ПК в локальной сети с общим доступом. При этом пробовал на обычном приложении - там и читается и записывается в файлы на ПК в локальной сети прекрасно. Проверял список модулей в uses, пробовал подставлять туда тот же список, что и для обычного приложения. Подскажите, что я упустил. Почему так происходит? Как добиться желаемого? Заранее благодарен за предоставленную информацию. |
| Автор: drkot 25.6.2014, 07:34 |
| ошибки там нет... есть не понимание работы винды служб и шар... pushok, как Вы думаете под каким пользователем служба пытается получить доступ к указанной "папке"? Когда найдете ответ (например в логах безопасности MICROSOF-84D575) подумайте о том какие права данный пользователь имеет на MICROSOF-84D575. Но выход очень простой... создаете "специального пользователя" настраиваете права и запускаете службу от имени этого пользователя. Это к стати стандартный механизм и им пользуется в том числе и MS. Для запуска службы под нужным пользователем достаточно указать данные авторизации при ее установке. |
| Автор: pushok 25.6.2014, 22:40 |
| Большое спасибо за подсказки, все дело и правда в пользователях, а журнал помог отладить работу службы, теперь буду учится делать записи в журнал своими руками. Еще раз спасибо |