powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF на WIN-службе как консоль
15 сообщений из 15, страница 1 из 1
WCF на WIN-службе как консоль
    #37934737
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый!

Имеется вин-служба. По ( http://usanov.net/2149-c-zapusk-windows-servisov-kak-konsolnyx-prilozhenij/comment-page-1#comment-52657) я ее запускаю как консоль. Все замечательно работает.

но на моей вин-службе еще хостится WCF сервис. Он выполняет передачу команд из внешних источников этой вин-службе.
Обращается он следующим образом:
Код: c#
1.
2.
3.
4.
5.
6.
    
public void WinServExecuteCommand(int command)
{
      ServiceController sc = ServiceController.GetServices().Where(e => e.ServiceName == "MyWinService").Single();
      sc.ExecuteCommand(command);
}


Это работает, когда служба устанавливается как служба) но если она запускается как консоль, то это уже не прокатывает. Служба уже не служба) и метод GetServices() ее не находит.
Подскажите, как сделать такое же, только чтобы можно было и как с консолью работать?
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37934944
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

сумбурно написал.
"это работает" не понятно, что это "это" ?
ты пытаешься из консоли поднять службу или что?

Вообще ты говроишь, что servicecontroller не находит твоей службы, потому что ты не установил службу.
И ты сомневаешься в правильности такой логики?

и не понятно , что такое "сделать такое же" ?
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935002
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiK, прошу прощения за непонятность)

имеется вин-служба, на которой хостится WCF-сервис. Этот WCF может передавать службе запросы на команду(пример обращения в оде). Все это работает, когда служба устанавливается именно как служба(через инсталлятор или командную строку с помощью installutil вроде).

Но теперь хочется запусть эту вин-службу как консоль и точно так же обращаться к ней через WCF сервис, который на ней же и хостится. Но в этом случае при обращении WCFa он не находит в servicecontroller эту самую службу. Он и не должен в ней находиться. Логика верная)

Я хочу узнать теперь способ, как выполнить команду этой моей службы через WCF. На что надо замеенить этот код:
Код: c#
1.
2.
      ServiceController sc = ServiceController.GetServices().Where(e => e.ServiceName == "MyWinService").Single();
      sc.ExecuteCommand(command);



чтобы WCF нашел мою службу, но запущенную как консоль.

Надеюсь, стало понятнее ))
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935056
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

как может WCF найти службу WCF?
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935084
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiK,

WCF ищет вин-службу) На которой он хостится.
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935090
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

а для чего он так должен делать?
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935106
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiK,

чтобы вызвать выполнение команды вин-службы. У службы есть методы OnStart, OnStop. Пауза.
А еще есть protected override void OnCustomCommand(int command). С помощью него можно заставить службу выполнять еще какие то действия. Вот WCF сервис и вызывает этот метод вин-службы.
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935107
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

ничего не понимаю.
WCF может хостится где угодно, например в IIS или в ServiceHost. В свою очередь ServiceHost у вас находится в Windows службе - так? И это все работает если вы ее устанавливаете как службу. Но теперь вы хотите запустить Windows службу просто как консольное приложение, так?
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935124
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netivan,

все так, значит все поняли )
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935125
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

а как вы обращаетесь тогда когда служба не в консоли? Тут тоже самое.
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935144
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netivan,

public void WinServExecuteCommand(int command)
{
ServiceController sc = ServiceController.GetServices().Where(e => e.ServiceName == "MyWinService").Single();
sc.ExecuteCommand(command);
}

это код в WCF-сервисе, который вызывает выполнение команды вин-службы.


Вообще говоря, сейчас служба то установлена на компе, но не запущена из менеджера служб. Я ее запускаю из консоли.
Поэтому вызов метода sc.ExecuteCommand(command); кидает эксепшен, что служба не запущена.
то есть я думаю, если вин-службу удалить вообще, то он просто не найдет ее. Выдаст null в лямбда-выражении
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935275
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,

ну и?
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935368
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiK,

что ну и?

Вопрос в том, как получить доступ к вин-службе, запущенной как консоль, чтобы отправить запрос на выполнение ее команды. Уже собственно даже WCF роли никакой и не играет...
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37935376
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky DragonAlexeiK,

что ну и?

Вопрос в том, как получить доступ к вин-службе, запущенной как консоль, чтобы отправить запрос на выполнение ее команды. Уже собственно даже WCF роли никакой и не играет...

ежели у вас консольное приложение, то это уже по любому не вин-сервис, а по тому получать к нему доступ нужно другим способом, например через тот же WCF
...
Рейтинг: 0 / 0
WCF на WIN-службе как консоль
    #37936523
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pation,

причем доступ надо получать к самой службе через эту самую консоль. Спасибо.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF на WIN-службе как консоль
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]