Как назвать метод от рабочего сервиса окон

Я создал и запустил сервис окон Service1 (с exe как MyService.exe) использующий c# 2005.. Я включал метод GetMyRandomNumber (), который возвращает случайное двойное значение.

Проблема здесь состоит в том, как мог использовать этот рабочий сервис и как я мог назвать метод.

Я попытался добавить ссылку MyService.exe и получаю доступ к методу как -

Service1 s = new Service1();
MessageBox.Show(s.GetMyRandomNumber().ToString());

Но найденный, которым метод не называют от рабочего экземпляра сервиса т.е. даже при том, что я останавливаю сервис, операторы выполняются.

Кто-то мог объяснить меня, как я могу назвать метод от рабочего экземпляра сервиса.

Спасибо за совместное использование Вашего бесценного времени.

7
задан O.O 18 June 2012 в 19:32
поделиться

5 ответов

Вы должны посмотреть на Удаление

8
ответ дан 6 December 2019 в 06:14
поделиться

В своем коде вы на самом деле не вызываете службу, а ссылаетесь на исполняемый файл и вызываете метод из этой сборки (во время выполнения .NET Framework будет использовать локальную сборку для выполнения кода, а не запущенную службу).

Для того, чтобы сделать то, что вы хотите, у вас есть ряд опций.

В .NET 2.0, вы можете использовать .NET Remoting. Вы создаете интерфейс удаленного доступа, который другие сборки могут использовать для вызова методов в исполняемых файлах.

В .NET 3.0 удаленное управление было заменено на WCF. Ваша служба стала бы службой WCF, которая подвергала бы воздействию GetRandomNumber() в рамках своего контракта на передачу данных. Приложения могут использовать контракт и подключаться к вашей службе для вызова метода.

В Интернете есть несколько хороших руководств как для .NET Remoting, так и для его замены, Windows Communication Foundation.

.
15
ответ дан 6 December 2019 в 06:14
поделиться

Вы можете использовать Windows Communication Foundation и IPC (межпроцессное взаимодействие) для связи с вашим сервисом и выполнения вашего метода.

1
ответ дан 6 December 2019 в 06:14
поделиться

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

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

.
2
ответ дан 6 December 2019 в 06:14
поделиться

WCF будет чрезмерной нагрузкой для связи на одном и том же компьютере. Трубы являются более простым и эффективным решением.

.
3
ответ дан 6 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: