проблема в случае оконного сервиса - PullRequest
3 голосов
/ 04 апреля 2010

Я сделал службу Windows и добавил проект installer.in, который содержит только этот код. System.Diagnostics.Process.Start (@ "C: \ Windows \ system32 \ notepad.exe"); внутри таймера событие и интервал 60 секунд. Я просто хотел попробовать запустить службу Windows.

1st-serviceProcessInstaller1 Я изменил настройки своей учетной записи как локальной системы. 2nd-serviceInstaller1, в этом случае я изменил тип запуска на автоматический. Затем я создаю настройку и добавляю другой проект, затем щелкните правой кнопкой мыши, добавьте вывод проекта, затем добавьте первичный вывод, затем нажмите ок. затем нажмите правой кнопкой мыши на проект-> вид-> настраиваемое действие-> щелкните правой кнопкой мыши на Установить-> Добавить настраиваемое действие-> выберите папку приложения и добавьте основной вывод. То же самое было сделано для всех оставшихся параметров, таких как фиксация, откат, удаление .

после этого я успешно собираю установочные параметры, затем устанавливаю правильно установленные установочные параметры в программный файл и создаю один файл .exe и один установочный файл. но проблема в том, что когда я ищу службу в "services.msc", службы там нет. означает, что сервис там не отображается. Я пытался, но не получал ans.plz, помог мне решить эту проблему.

Ответы [ 3 ]

2 голосов
/ 04 апреля 2010

Не ответ на ваш оригинальный вопрос, но

  • Запуск приложения с графическим интерфейсом из службы - плохая идея (тм), и в большинстве случаев он не будет работать
  • Проверьте, какой таймер вы используете. .Net предоставляет 3 класса Timer, не все из них работают в службе (поскольку они зависят от цикла сообщений окна, iirc)

Чтобы протестировать любой сервис: почему бы вам сначала не перейти на двоичный файл installutil (в обход проекта установки)? Вы найдете его в каталоге фреймворков, например в "C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727".

0 голосов
/ 04 апреля 2010

Еще лучшим вариантом является использование инструмента командной строки sc.exe Попробуй "sc create /?" в командной строке и посмотреть его параметры. Затем вы можете использовать «sc start», «sc stop» и «sc query» для управления сервисом. Вы можете использовать sc.exe для отправки настраиваемой команды в сервис. Проверьте журнал событий Windows на наличие ошибок, связанных с установкой службы. Это может быть версия .Net, используемая для ее создания, не на целевой машине.

0 голосов
/ 04 апреля 2010

Я бы посоветовал попробовать установить сборку вручную, чтобы увидеть, нет ли какого-либо сообщения об ошибке. Просто откройте командную строку Visual Studio и запустите InstallUtil.exe [YourService].exe. По крайней мере, вы будете знать, правильно ли он установлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...