Предоставление службы WCF через привязку именованных каналов
-
06-07-2019 - |
Вопрос
Введение:
Я успешно внедрил Службу 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), потому что я счел это ненужным.
<Ол>Решение
Ваша конечная точка выглядит хорошо, хотя мне любопытно, что в localBinding ...
Похоже, самый простой вариант - просто изменить конфигурацию конечной точки на клиенте именованных каналов в соответствии с конечной точкой вашей службы. Клиенту должно быть все равно, пока это единственная конечная точка в файле конфигурации клиентов. В противном случае вам нужно будет добавить имена к вашим конечным точкам, а клиент выберет конкретное при создании нового прокси-объекта.
Удачи!
Другие советы
конечная точка mex необходима во время разработки, поскольку она предоставляет http-местоположение, в котором создается wsdl. wsdl описывает клиенту, как взаимодействовать с сервером через именованные каналы, TCP / IP или что-либо еще. после того, как клиентское приложение построит прокси для привязки именованных каналов и настроит конфигурацию, конечная точка mex больше не нужна. следовательно, конечная точка mex может быть удалена перед развертыванием через среды, если это необходимо. Р>