|  | 
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ День добрый!  Имеется вин-служба. По ( http://usanov.net/2149-c-zapusk-windows-servisov-kak-konsolnyx-prilozhenij/comment-page-1#comment-52657) я ее запускаю как консоль. Все замечательно работает. но на моей вин-службе еще хостится WCF сервис. Он выполняет передачу команд из внешних источников этой вин-службе. Обращается он следующим образом: Код: c# 1. 2. 3. 4. 5. 6. Это работает, когда служба устанавливается как служба) но если она запускается как консоль, то это уже не прокатывает. Служба уже не служба) и метод GetServices() ее не находит. Подскажите, как сделать такое же, только чтобы можно было и как с консолью работать? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 09:23 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ Sky Dragon, сумбурно написал. "это работает" не понятно, что это "это" ? ты пытаешься из консоли поднять службу или что? Вообще ты говроишь, что servicecontroller не находит твоей службы, потому что ты не установил службу. И ты сомневаешься в правильности такой логики? и не понятно , что такое "сделать такое же" ? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 11:11 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ AlexeiK, прошу прощения за непонятность) имеется вин-служба, на которой хостится WCF-сервис. Этот WCF может передавать службе запросы на команду(пример обращения в оде). Все это работает, когда служба устанавливается именно как служба(через инсталлятор или командную строку с помощью installutil вроде). Но теперь хочется запусть эту вин-службу как консоль и точно так же обращаться к ней через WCF сервис, который на ней же и хостится. Но в этом случае при обращении WCFa он не находит в servicecontroller эту самую службу. Он и не должен в ней находиться. Логика верная) Я хочу узнать теперь способ, как выполнить команду этой моей службы через WCF. На что надо замеенить этот код: Код: c# 1. 2. чтобы WCF нашел мою службу, но запущенную как консоль. Надеюсь, стало понятнее )) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 11:42 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ Sky Dragon, как может WCF найти службу WCF? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 12:08 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ AlexeiK, WCF ищет вин-службу) На которой он хостится. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 12:21 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ Sky Dragon, а для чего он так должен делать? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 12:23 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ AlexeiK, чтобы вызвать выполнение команды вин-службы. У службы есть методы OnStart, OnStop. Пауза. А еще есть protected override void OnCustomCommand(int command). С помощью него можно заставить службу выполнять еще какие то действия. Вот WCF сервис и вызывает этот метод вин-службы. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 12:31 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ Sky Dragon, ничего не понимаю. WCF может хостится где угодно, например в IIS или в ServiceHost. В свою очередь ServiceHost у вас находится в Windows службе - так? И это все работает если вы ее устанавливаете как службу. Но теперь вы хотите запустить Windows службу просто как консольное приложение, так? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 12:32 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ netivan, все так, значит все поняли ) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 12:40 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ Sky Dragon, а как вы обращаетесь тогда когда служба не в консоли? Тут тоже самое. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 12:40 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ netivan, public void WinServExecuteCommand(int command) { ServiceController sc = ServiceController.GetServices().Where(e => e.ServiceName == "MyWinService").Single(); sc.ExecuteCommand(command); } это код в WCF-сервисе, который вызывает выполнение команды вин-службы. Вообще говоря, сейчас служба то установлена на компе, но не запущена из менеджера служб. Я ее запускаю из консоли. Поэтому вызов метода sc.ExecuteCommand(command); кидает эксепшен, что служба не запущена. то есть я думаю, если вин-службу удалить вообще, то он просто не найдет ее. Выдаст null в лямбда-выражении ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 12:47 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ Sky Dragon, ну и? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 13:35 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ AlexeiK, что ну и? Вопрос в том, как получить доступ к вин-службе, запущенной как консоль, чтобы отправить запрос на выполнение ее команды. Уже собственно даже WCF роли никакой и не играет... ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 14:17 |  | ||
| 
WCF на WIN-службе как консоль | |||
|---|---|---|---|
| #18+ Sky DragonAlexeiK, что ну и? Вопрос в том, как получить доступ к вин-службе, запущенной как консоль, чтобы отправить запрос на выполнение ее команды. Уже собственно даже WCF роли никакой и не играет... ежели у вас консольное приложение, то это уже по любому не вин-сервис, а по тому получать к нему доступ нужно другим способом, например через тот же WCF ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.08.2012, 14:21 |  | ||
|  | 

| start [/forum/topic.php?fid=19&msg=37935090&tid=1397201]: | 0ms | 
| get settings: | 10ms | 
| get forum list: | 13ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 36ms | 
| get topic data: | 11ms | 
| get forum data: | 3ms | 
| get page messages: | 50ms | 
| get tp. blocked users: | 1ms | 
| others: | 229ms | 
| total: | 359ms | 

| 0 / 0 | 
