Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 36585|Ответ: 3

[ASP.NET] C# — это сервис Windows, который регулярно выполняет задачи

[Скопировать ссылку]
Опубликовано 27.04.2019 17:56:09 | | | |


предисловие

В продолжение предыдущей статьи о планировщике задач Windows в этой статье будет зафиксировано создание сервисов Windows.
Окружающая среда и инструменты

>Система Windows 10

>VS 2017

СМС

1: Создайте новое решение и создайте сервис для Windows. Имя — "WindowsServiceDemo.exe






2: Дважды кликните по файлу «Service1.cs», правой кнопкой мыши по пустому месту — > выберите «Добавить установщик».







3: В двух сгенерированных компонентах нажмите на компонент «serviceProcessInstaller1», а в форме свойств установить тип аккаунта «Account» на «LocalSystem».





4: В двух сгенерированных компонентах нажмите на компонент «serviceInstaller1», в форме свойств установите соответствующие свойства и затем сохраните.




5: Кликните правой кнопкой мыши на «Service1.cs» — > выберите «Просмотреть код».






6: В соответствующем методе запишите логику обработки. Метод OnStart(): относится к методу, который входит при запуске сервиса Windows. OnStop(): Как следует из названия, это способ войти в систему при прекращении сервиса. Мы можем написать таймер, который позволит программе обрабатывать логику при обычном половом акте.






7: Создайте два файла блокнота, назовите и измените суффиксы «Install.bat» и «Uninstall.bat» соответственно. Примечание: Имя суффикса — .bat. Вставьте его внутрь проекта. И измените атрибут на «Скопировать в локальное».



8: Два файла, которые мы только что создали, предназначены для установки сервиса и удаления сервиса. Теперь запишите пакетный код в эти два файла и сохраните.
Откройте файл «Install.bat» и запишите следующий код
Примечание: «WindowsServiceDemo.exe» — это только что сгенерированная программа exe. "AServiceTest" — это набор "ServiceName" в компоненте "serviceInstaller1".

Откройте файл "Uninstall.bat" и напиши следующий код


9: F6 генерирует его. В каталоге проекта "bin\Debug". Кликните правой кнопкой мыши на «Install.bat» — > выберите «Запустить от имени администратора».



После завершения установки сервиса. Мы видим, что файл «Log.txt» записывает строку данных каждые 10 секунд.


Мы видим установленные сервисы.
Run — > введите "services.msc" и введите.



Прекратите обслуживание сейчас. Кликните правой кнопкой мыши на «Uninstall.bat» — > выберите «Запустить от имени администратора».



После того как сервис будет деинсталиран. Мы видим, что в файле «Log.txt» также записана строка данных.



#Отладка сервисов Windows

Сервисы Windows нельзя запускать напрямую с отладкой F5, F10. Так как же отладить программу, если есть аномалия?
1: Прежде всего, используйте администратора для запуска файла «Install.bat» и дайте программе запуститься первым.

2: Вернитесь в VS и выберите «Отладка» в строке меню — > выберите «Прикрепить к процессу».





3: В всплывающей форме отметьте «Показать процессы всех пользователей», найдите .exe приложение, которое мы создали, и нажмите «Прикрепить».




4: Разбить точку в методе, чтобы при работе определённого времени запускалась отладка.



Эпилог

Отладка сервисов Windows очень проблематична — иногда программа написана в конкретной задаче, и сервис не может запуститься, что усложняет отладку. Обычно написание сервисов для Windows сопровождается консольным приложением. Отладьте его в консольном приложении, а затем перенесите в Windows Services. В следующей теме будет описан более простой способ создания сервиса для Windows.


Примечание: пакетные файлы, запущенные и удалённые обеими программами, должны запускаться как администраторы. Иначе это будет неверно.









Предыдущий:Общие алгоритмы для обмена большими данными (приложения)
Следующий:Использование Topshelf для запланированных задач выполнения на C#
Опубликовано 08.05.2019 10:59:16 |
Спасибо, что поделились, как раз вовремя, пришли мне
Опубликовано 22.06.2020 14:04:33 |
Всегда сообщайте об этой ошибке
 Хозяин| Опубликовано 07.09.2020 15:21:59 |
awclovelin Опубликовано 2020-6-22 14:04
Всегда сообщайте об этой ошибке

Запущенная команда неверна, эта служба не установлена. Если вы устанавливаете его, нажав на командную строку, можете обратиться к моему следующему посту.
Использование Topshelf для запланированных задач выполнения на C#
https://www.itsvse.com/thread-7503-1-1.html

Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com