2010-02-24 2 views
0

Я разрабатываю решение с несколькими службами WCF, которые все общаются между собой, даже если они имеют разные типы. Сервисы соединяются друг с другом через общий интерфейс ChannelFactory, и каждая служба размещается внутри ServiceHost.Контракты обратного вызова WCF и сервер к серверу

Мой вопрос в том, было бы правильным использовать контракт обратного вызова между серверами для связи друг с другом, и если да, то как это будет выглядеть такое решение.

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

Когда я попытался выполнить контракт обратного вызова внутри класса обслуживания, который был размещен внутри ServiceHost, он не удался.

ответ

0

Прежде всего, всякий раз, когда вы отправляете вопрос о том, что «это не сработало», вам нужно сообщить нам, каким образом это не удалось. Если возникло исключение, вам нужно опубликовать все исключение, включая все экземпляры InnerException, путем публикации результата ex.ToString().

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

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

+0

В случае, о котором вы упомянули, скажем, что каждая служба содержит свой интерфейс в хосте службы. где бы я поместил обратные вызовы для другого процесса для подключения? Я имею в виду, что тип ISomeMessage будет размещен службой SomeMessageService через ServiceHost. что бы реализовать IServiceMesssageCallback? Btw im избегая использования порожденного порога прокси. – totem

+0

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

Смежные вопросы