Запустите консольное приложение перед входом пользователя - PullRequest
1 голос
/ 11 марта 2012

У меня есть консольное приложение C #, которое взаимодействует с базой данных SQL Server, и я хочу настроить его для запуска при запуске системы и перед входом пользователя в систему.Мое приложение представляет собой бесконечный цикл, который читает / записывает данные из / в базу данных (после обработки) и записывает сообщения журнала в окно консоли.

Я пробовал планировщик задач Windows.Приложение запускается, но у меня было две проблемы:

  1. Приложение не может получить доступ к базе данных (Сообщение об ошибке: «Не удается открыть базу данных« MyDataBase », запрошенную при входе в систему. Ошибка при входе».файл журнала)
  2. Когда я вхожу в Windows, я не могу получить консоль приложения, и она не отображается в списке процессов диспетчера задач.

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

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 11 марта 2012

Возможно, вы захотите реорганизовать свое приложение, чтобы оно стало службой Windows. Вам придется смириться с тем фактом, что вы не можете "получить доступ" непосредственно к самому приложению. Обычно вы создаете сопутствующее приложение, которое может управлять службой. Подумайте о службах, с которыми вы знакомы в Windows ... IIS, SQL Server и т. Д. ... на высоком уровне, все они работают так.

1 голос
/ 11 марта 2012

Я подозреваю, что здесь нужно использовать две программы.Во-первых, служба Windows, которая запускается при загрузке и перезапускается при сбое.Этой службе, вероятно, потребуется либо подключиться с учетными данными сервера SQL (не учетными данными Windows), либо запустить под идентификатором службы, который имеет доступ к базе данных.Вторая программа запускается при входе пользователя в систему и считывает / отображает любые сообщения журнала из службы Windows.По сути, он будет функционировать как «хвост» в файле журнала, написанном службой, хотя вы могли бы придумать более сложный процесс регистрации регистратора, чтобы он мог получать сообщения непосредственно от службы, если хотите.

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