| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > windows service |
| Автор: 4ybaka 5.7.2008, 19:29 | ||
написал простой сервис для теста:
остальное оставил без изменений.однако после запуска службы файл не создается.сервис вроде нормально стартует(и сразу остнаваливается,т.к. делать ему нечего |
| Автор: jonie 5.7.2008, 20:12 | ||||
| вот прямо сгенерированный (без добавки инсталлера) хрен установится в систему.... ну да будем считать что все добавил 8)
напишем код такой :
запустим дебаггер и обнаружим, что сервис-то падает на AccessDenied с какой учетки запускаете сервис-то? |
| Автор: 4ybaka 5.7.2008, 20:58 |
| сервис ставится как LocalService.устанавливаю под админом. |
| Автор: jonie 5.7.2008, 21:07 |
| вы лучше код запустите что я привел. LocalService по умолчанию доступа к FS не имеет. короче права дай юзеру LocalService (RW) на каталог куда пишешь или запускай под другой учеткой, имеющей права. |
| Автор: Idsa 5.7.2008, 21:22 |
| Немного офтоп. Есть ли какие-то тонкости с установкой сервиса через installutil. Пробовал и в XP, и в Vista, эффект один и тот же: пишет, что все ок, но в списке сервисов сервис не появляется. |
| Автор: jonie 5.7.2008, 22:16 |
| а точно пишет-то? ты добавлял инсталлятора класс ? логи в студию кароче) |
| Автор: Bogdan1024 5.7.2008, 22:59 |
| Попробуй добавить в инсталятор службы требование на разрешение доступа к твоему файлу и посмотри что скажет инсталятор когда ты попытаешься поставить свою службу. И в коде тоже требование добавь (в сборку и в метод). Вообще это с правами трабл, мне кажется. Добавлено через 39 секунд Ещё попробуй настроить в панель управления->администрирование->.NET FW Configuration доступ к файлу... |
| Автор: jonie 5.7.2008, 23:38 |
| Bogdan1024 почитай что я писал выше и не надо гипотез. инсталятору вообще пофиг на разрешения. даете права на запись и все ок будет. |
| Автор: 4ybaka 6.7.2008, 11:13 | ||
| jonie, ты прав,нет прав тогда еще вопрос(пока модераторы спят
так вот когда доходит дело до второй строки - выкидывает эксепшн,мол такой(SCServiceLogSource) уже есть |
| Автор: jonie 6.7.2008, 12:17 | ||
Idsa ну он и пишет даже по-русски, что у тебя нету инсталятора класса. в двух словах тыкаешь дважды на Service1.cs (от откроет редактор). тыкаешь правой на основном окне (НЕ окне просмотра решения), там есть Add Installer в меню. Мастер создает еще один класс инсталятора, и связывает его с твоим сервисом. 4ybaka не юзаю стандартную писалку в логи. так что хз. попробуй для начала делать тоже не из сервиса) |
| Автор: Idsa 6.7.2008, 12:33 |
| jonie, получилось. Спасибо |
| Автор: CL0NE 1.12.2009, 00:15 | ||||||
Поставил сервис, все работает и использует свой журнал событий, как и выше приведенном коде:
Но пришлось переделывать код и в результате нужно было удалять службу, результат:
Погуглил, прочитал совет, что нужно удалять в реестре ключи/ветку, которая отвечает за сервис. Нет такой ветки в HKLM/SYSTEM/CurrentControlSet/<Service name>, а ветка, которая принадлежит службе журнала событий после удаления и повтора процедуры InstallUtil.exe /u ... снова появляется. Как исправить данную ошибку? После перезагрузки и попытки заинсталить службу:
UPD: "А ларчик просто открывался": добавил ветку с именем Test Service [Server] в ../EventLog/Application и все заработало. |