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