Установка службы Windows на C # в Windows 7 - PullRequest
7 голосов
/ 31 августа 2010

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

После прочтения некоторых других предложений я попытался переместить мои файлы из папки / 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?

Ответы [ 3 ]

11 голосов
/ 31 августа 2010

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

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

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

8 голосов
/ 31 августа 2010

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

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

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

3 голосов
/ 31 августа 2010

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

Во-первых, вы ДОЛЖНЫ запускаться от имени администратораpermissions.

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

...