Служба Windows в C # работает на компьютере разработчика, вылетает в тестовой среде - PullRequest
1 голос
/ 01 ноября 2010

Я работал над приложением, использующим .NET 4 и c # в Visual Studio 2010 Express. Его цель - просмотреть каталог и импортировать любые найденные документы в нашу систему обработки изображений.

Я включил класс установщика, который предоставляет информацию, необходимую для installutil.exe.

Итак, чтобы установить локально, я строю решение, а затем в командной строке:

installutil.exe MyProjectExecutable.exe

Который устанавливает его как сервис. Это отлично работает в моей среде разработки.

Для развертывания в тестовой среде я использую тот же метод:

installutil.exe MyProjectExecutable.exe.deploy

За исключением, конечно, исполняемого файла имеет второе расширение .deploy. Это способ публикации приложения в Visual Studio. Все работает до его пункта

Вот проблема: как только я это сделаю, я запускаю службу, и она запускается правильно, как указано в файле журнала. Тем не менее, как только он обнаружит файлы в каталоге, служба не будет ничего с ними делать и в конечном итоге произойдет сбой. Единственный способ узнать, что он разбился - это посмотреть в окне просмотра событий Windows. Появится сообщение:

"Произошло необработанное исключение win32 в MyProjectExecutable.exe.deploy [4108]. Сбой отладки Just-In-Time это исключение со следующей ошибкой: Не удалось запустить отладчик, поскольку ни один пользователь не вошел в систему."

Два вопроса:

1) Что может быть причиной

2) Прохожу ли я правильные шаги для установки службы Windows, или есть лучший способ?

В обеих средах установлен .NET 4. В обеих средах я помещаю одни и те же документы в каталог импорта. В обеих средах служба работает под учетной записью локальной системы. Если мой вопрос отражает недостаток опыта C #, заранее извиняюсь.

Ответы [ 4 ]

0 голосов
/ 02 ноября 2010

Я нашел проблему. в файле конфигурации каталог прослушивания был "c", тогда как он должен был быть "C". До сих пор я не думал, что Windows чувствительна к регистру. Спасибо за помощь, ребята.

0 голосов
/ 02 ноября 2010

Вы смотрите каталог в разделе «Документы и настройки»?Вы упоминаете, что работаете в локальной системе, но в коде C # или на панели служб?

  • Пуск-> Выполнить
  • services.msc
  • <Найти приложение>
  • Щелкните правой кнопкой мыши, Свойства
  • Вкладка «Вход»
  • Войдите в систему как
    • Эта учетная запись
    • <Подключить пользователя / пароль с разрешениями>
0 голосов
/ 02 ноября 2010

По моему опыту, это всегда проблема безопасности.Проверьте права, которыми обладает работающий сервис.Может ли он получить доступ к папкам, которые вы отслеживаете, и внести необходимые изменения?

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