spriyanair Ответов: 2

Как вызвать метод в службе windows с помощью .Net-приложения


мне нужно вызвать метод в службе windows, у которого есть таймер для планирования какой-то задачи .Как я буду вызывать этот метод в консольном приложении или asp.net применение

Что я уже пробовал:

мне нужно вызвать метод в службе windows, у которого есть таймер для планирования какой-то задачи .Как я буду вызывать этот метод в консольном приложении или asp.net применение

2 Ответов

Рейтинг:
2

Member 14641213

использование (ServiceReference1.WebServiceSoapClient WS = новый ServiceReference1.WebServiceSoapClient())
{
DataTable Result = WS.Get();
}


Рейтинг:
1

Garth J Lancaster

Я не уверен, что знаю, что вы ищете ... ты можешь :-

а) отправить пользовательские команды для программы Службы Windows через ServiceController.Метод executecommand

const int DoSomething = 666;

service.ExecuteCommand(DoSomething);
service.WaitForStatus(ServiceControllerStatus.Running, timeout);


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

protected override void OnCustomCommand(int command)
{
    if (command == DoSomething)
    {
        // ...
    }
}


б) иметь в своей службе "приемник" (именованные каналы, tcp/ip), который получает "сообщение" из внешнего источника и выполняет что-то вроде обработки "задачи"

в) вы можете иметь сервис, построенный с помощью кварца.Например, сеть, которая запускает "задачи", используя все виды спецификаций планирования, например спецификации типа cron

но, как вы уже написали, Нет, вы не можете "вызвать метод в службе windows" - возможно, вам нужно обновить свой вопрос и немного уточнить свои требования


OmGanesh

@Гарт,
У меня есть та же проблема, что и при запуске длительной задачи в фоновом режиме по запросу пользователя из asp.net веб-приложение MVC.
Я полностью потерян из-за обилия статей в интернете с опциями (Quartz, Hangfire, Named Pipes, Azure Jobs, ...). Я думал, что службы windows-это мое лучшее решение, поскольку существующий проект уже имеет одну службу windows, работающую каждые 4 часа.

Мое требование состоит в том, чтобы создать еще один прослушиватель/метод (как бы мы его ни называли), куда я могу отправить сообщение из своего веб-приложения по запросу пользователей. Этот метод будет в основном выполнять действия, основанные на таблице БД (реальная задача будет выполнена на основе флага таблицы), поэтому мне просто нужно отдать приказ моему сервисному методу проверить запись БД для выполнения новой задачи)

Примечание: требование заключается в том, что может быть одновременный вызов сервиса от разных веб-пользователей одновременно.

Ваши комментарии и/или справочные статьи будут высоко оценены !!!