Вызов службы Windows из веб-службы - PullRequest
2 голосов
/ 27 марта 2009

Я использую .Net 2.0 framework и хотел бы вызвать функцию в службе Windows из веб-службы. Это возможно? И если да, то какой контроль я буду иметь над функцией, то есть передачей параметров, получением результата и т. Д. Любые идеи будут с благодарностью приняты:)

Ответы [ 6 ]

2 голосов
/ 27 марта 2009

Как насчет размещения службы WCF внутри службы Windows. Вы можете использовать net.tcp или именованные каналы для связи между «вашей» веб-службой и службой Windows. Вы можете использовать NetDataContractSerializer для сериализации с верностью типа.

2 голосов
/ 27 марта 2009

Вы можете сделать это через удаленное взаимодействие .NET. Если вы пойдете по этому пути, то вы увидите, что вы вызываете метод и получаете результат, но все ваши параметры будут сериализованы по проводам, а результат будет сериализован обратно. Следовательно, все должно быть сделано сериализуемым.

2 голосов
/ 27 марта 2009

Remoting - ваш лучший вариант, если вам нужно передать значения параметров.

Если вам не нужно делиться объектами или чем-то слишком сложным, ServiceController , вероятно, проще.

0 голосов
/ 18 апреля 2009

Почему бы не упаковать функцию в ее собственную DLL, а затем раздать ее вместе с Windows Service и Web Service отдельно?

0 голосов
/ 27 марта 2009

Создать сервисный проект, экспортировать интерфейс COM или использовать PIPE для передачи данных. Посмотреть это Межпроцессное взаимодействие с использованием именованных каналов в C #

0 голосов
/ 27 марта 2009

Вы могли бы реализовать базовый http-сервер, который сопоставляет определенные запросы функциям. Строка запроса будет сопоставлена ​​с параметрами. На самом деле не сложно, и я делал это в прошлом (поскольку я предоставлял некоторые элементарные отчеты на основе шаблонов). Это не было динамически, но это могло быть сделано динамически. Посмотрите на HttpListener для начала. Вы также можете разместить в нем движок asp.net.

Это имеет свои преимущества и недостатки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...