C # Служба Windows работает на нескольких компьютерах? - PullRequest
3 голосов
/ 20 апреля 2011

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

Я немного запутался, как этого добиться.Я пишу WCF и службу хостинга Windows, устанавливаю их на те машины, которые мне нужны.Затем из уровня, который будет отправлять задания в эти службы, я как-то сообщаю ему, на какую машину отправлять (через интерфейс службы WCF).Именно этот бит меня больше всего смущает, как это сделать.

Ответы [ 3 ]

4 голосов
/ 20 апреля 2011

Я сделал именно эту вещь.То, что вы описали, является правильным (хотя поддерживать узлы в синхронизации и не позволять им наступать друг на друга может быть грубым в распределенной среде).Для определения местоположения конечных точек я бы рекомендовал использовать WS-Discovery, как описано в http://msdn.microsoft.com/en-us/library/ee354381.aspx.. Если вы не используете .NET4, вы все равно можете реализовать обнаружение самостоятельно, используя службу или поведение конечной точки.

2 голосов
/ 20 апреля 2011

Как и любая другая служба WCF, ваши службы будут предоставлять конечные точки. Клиент просто отправит на эти конечные точки, как обычно.

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

1 голос
/ 20 апреля 2011

Вы говорите о NLB решении.

...