Предоставление службы WCF через привязку именованных каналов

StackOverflow https://stackoverflow.com/questions/184878

Вопрос

Введение:

Я успешно внедрил Службу WCF, размещенную в Службе Windows, несколько дней назад. Сообщество здесь, в StackOverflow, помогло мне с разоблачение WSDL здесь . Я еще раз благодарю вас. Однако недавно я обнаружил, что на этот раз есть еще один потенциальный клиент для этой службы, расположенный на той же машине, что и служба, и это привело меня к мысли, что я должен добавить еще одну конечную точку с namedPipesBinding.

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

Проблема:

Мне нужно предоставить другую конечную точку для того же сервиса / контракта, но на этот раз с использованием netNamedPipeBinding. Однако я действительно не понимаю, как я могу добавить ссылку на сервис от клиента. Глупо после добавления

<endpoint address="net.pipe://localhost/OfficeService"
          binding="netNamedPipeBinding"
          contract="netBridge.Development.OfficeService.IWordService"
          bindingConfiguration="localBinding" />

Я попытался добавить ссылку на службу в приложении Windows Forms, расположенном на том же компьютере, набрав net.pipe: // .... url. Это не сработало. Я должен упомянуть, что ранее удалил конечную точку mex (MetaData Exchange), потому что я счел это ненужным.

<Ол>
  • Нужна ли эта конечная точка mex для обнаружения привязки конечной точки именованных каналов?
  • Как добавить ссылку на службу в клиентском приложении в конечную точку именованного канала?
  • Это было полезно?

    Решение

    Ваша конечная точка выглядит хорошо, хотя мне любопытно, что в localBinding ...

    Похоже, самый простой вариант - просто изменить конфигурацию конечной точки на клиенте именованных каналов в соответствии с конечной точкой вашей службы. Клиенту должно быть все равно, пока это единственная конечная точка в файле конфигурации клиентов. В противном случае вам нужно будет добавить имена к вашим конечным точкам, а клиент выберет конкретное при создании нового прокси-объекта.

    Удачи!

    Другие советы

    конечная точка mex необходима во время разработки, поскольку она предоставляет http-местоположение, в котором создается wsdl. wsdl описывает клиенту, как взаимодействовать с сервером через именованные каналы, TCP / IP или что-либо еще. после того, как клиентское приложение построит прокси для привязки именованных каналов и настроит конфигурацию, конечная точка mex больше не нужна. следовательно, конечная точка mex может быть удалена перед развертыванием через среды, если это необходимо.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top