Вызов службы WCF из другой разобщенной службы WCF на том же сайте без HttpClient - PullRequest
1 голос
/ 21 июня 2019

У меня есть архитектура модели плагинов, которая создает мои службы Restful WCF.

(Пройдет пара лет, прежде чем мы перейдем на Web Api из WCF, поэтому переход на Web Api не совсем решение.)

Я отключил микросервисы WCF, которые нессылаются друг на друга.

  • EntityAWebService
  • EntityBWebService

EnityAWebService знает, что служба EntityBWebService существует из конфигурации, но не ссылается на нее.

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

EntityAWebService выполняет вызов EntityBWebService, используя информацию о конфигурации.EntityBWebService может находиться на том же сервере или на другом сервере.- Если на другом сервере, код будет продолжать использовать HttpClient.- Если на том же сервере, обработайте сообщение и отправьте его через канал, не проходя через HttpClient, сеть операционной системы и IIS.

Ниже приведена архитектура.Оранжевый - это то, что я хочу создать.

enter image description here

Использование HttpClient означает, что EntityAWebService отправляет сообщение, которое попадет на сетевой уровень операционной системы и пройдет черезIIS.Ни чего из этого не нужно.Это вызывает проблемы с производительностью, а по мере увеличения плагинов Entity увеличивается количество сокетов, и даже при использовании одноэлементного httpclient сокеты протекают.

Оранжевый цвет в архитектуре - это то, чего еще не существует.

Код знает URL-адрес для вызова веб-службы Entity B, содержимое сообщения и заголовки.Как бы я смоделировал в коде, представленном оранжевой рамкой, что IIS делает для переадресации вызова через поведение и в конечную точку?

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

Пример проекта: https://github.com/rhyous/DecoupledWcfServices

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