2010-08-31 3 views
7

У меня есть пакетный файл, который я использовал для установки моих служб Windows C# на некоторое время, никогда не возникало проблем до Windows 7. Я попытался запустить командный файл с правами администратора. Я попытался запустить командную строку с помощью admin privs, перейти к службе Windows EXE и запустить там InstallUtil. Все еще не работает.Установка службы Windows C# в Windows 7

После прочтения некоторых других предложений я попытался переместить мои файлы из папки/bin и запустить их из другого места, но это также не сработало.

Пакетный файл выглядит следующим образом

@ECHO OFF 

REM The following directory is for .NET 2.0 
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727 
set PATH=%PATH%;%DOTNETFX2% 

echo Installing IEPPAMS Win Service... 
echo --------------------------------------------------- 
InstallUtil /i IEPPAMS_WinService1.exe 
echo --------------------------------------------------- 
echo Done. 

и у меня есть установочный файл журнала, который я дамп информации к. Если я просто дважды щелкните файл .bat, я получу

Выполнение транзакции.

Начало этапа установки установки . См. Содержимое файла журнала для C: \ Users \ Justin \ Desktop \ service test \ IEPPAMS_WinService1.exe прогресс сборки. Файл , расположенный по адресу C: \ Users \ Justin \ Desktop \ service test \ IEPPAMS_WinService1.InstallLog.

Исключение произошло на этапе установки . System.InvalidOperationException: Не удается открыть диспетчер управления сервисом на компьютере '.'. Эта операция может иметь . Внутреннее исключение System.ComponentModel.Win32Exception было выброшено со следующей ошибкой сообщение: Доступ запрещен.

Начало фазы отката установки . См. Содержимое файла журнала для C: \ Users \ Justin \ Desktop \ service test \ IEPPAMS_WinService1.exe прогресс сборки. Файл , расположенный по адресу C: \ Users \ Justin \ Desktop \ service test \ IEPPAMS_WinService1.InstallLog.

Откат фазы завершен успешно.

Выполненная транзакция завершена.

Когда я запускаю файл .bat с правами администратора, ничего не записывается в файл журнала, и служба по-прежнему не установлена.

Любые мысли? Есть ли новый способ установки сервисов в Windows 7?

ответ

8

Так что я смог исправить эту проблему, введя в командной строке весь путь к InstallUtil, и он сработал. Таким образом, после того, перейдя в папку, которая имела свой EXE я напечатал следующее:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.21006 \ installutil.exe IEPPAMS_WinService1.exe

Не конечно, почему я должен сделать это в Windows 7 сейчас, когда мне никогда не приходилось в XP, но хорошо. Спасибо за все предложения!

+1

Я ищу делать то же самое, что вы здесь делаете. Я просто заметил, что для вашего «Fix» здесь вы используете installutil.exe в своем каталоге .NET 4.0. В исходном вопросе вы использовали .NET 2.0 для установки. (установить DOTNETFX2 =% SystemRoot% \ Microsoft.NET \ Framework \ v2.0.50727) –

+0

Отличная точка. Я чувствую, что когда я проходил все, что я пробовал, перешел на .NET 4.0, и это не помогло. Затем, когда я пошел на полный путь, это сработало. Не возвращался, чтобы попробовать полный путь в 2.0, и это было несколько месяцев назад, поэтому я, возможно, помню неправильно. –

+0

Да, это ответ! Это стоило мне человека! –

11

Щелкните правой кнопкой мыши на пакетном файле и запустите его как Администратор.

Скорее всего, вы столкнетесь с битвой с новой моделью безопасности (User Account Control) из Windows Vista и Windows 7. Даже если вы работаете как учетная запись с правами администратора, вам все равно нужно поднять, чтобы сделать некоторые (большинство) административной деятельности.(Да, можно отключить эту функцию, но не)

Edit ... Правильный Командная строка InstallUtil YourApp.exe. /i не выглядит как переключатель vaild для InstallUtil.

+0

Мэтью, спасибо, но я попробовал это. Результаты описаны в конце моего вопроса. –

+0

@Justin, попробуйте запустить Command Window в качестве администратора, а затем попробуйте выполнить команду вручную. Это похоже на проблему с разрешениями, но без сидения на вашем компьютере трудно догадаться, какое разрешение вызывает проблему. –

+1

Кстати, вы пробовали искать в этом файле журнала? –

3

Когда я запускаю файл .bat с правами администратора, ничего не записывается в файл журнала, и служба по-прежнему не установлена.

Во-первых, вы должны выполнять права администратора.

Во-вторых, когда вы запускаете «Администратор», он фактически меняет каталог на c: \ windows \ system32 как исходный каталог (не знаю почему), что, вероятно, объясняет, почему запуск в качестве администратора не вызывает никакого файла журнала. Вручную перейдите на путь, в котором IEPPAMS_WinService1.exe находится в начале вашего скрипта.

Смежные вопросы