У меня есть сервис, доступный через http и net.pipe. Он размещается в IIS 7 (Server 2008). Возможно, я размещаю разные экземпляры этой службы для нескольких клиентов на одном компьютере, и поэтому HTTP настроен с виртуальными именами хостов и т. Д.
Я думал, что сделаю подобное для сетевого связывания именованных каналов - используя некоторую форму
клиенты 'имя виртуального хоста' в базовом адресе именованного канала, поэтому я могу
чтобы получить доступ к различным экземплярам клиентов с разными урнами net.pipe (я понимаю,
имена net.pipe - это URN, а не URL, поэтому они могут быть произвольными, но
Я думал, что буду следовать аналогичному шаблону с адресами HTTP).
Вот мой web.config
<service name="Administration" behaviorConfiguration="AdministrationBehavior">
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="normalWsBinding" contract="IAdministration" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<endpoint address="" binding="netNamedPipeBinding" bindingConfiguration="normalNetNamedPipeBinding" contract="IAdministration" />
<endpoint address="mex" binding="mexNamedPipeBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://virtualhostname.com/service" />
<add baseAddress="net.pipe://virtualhostname.com/administration/service" />
</baseAddresses>
</host>
</service>
Тем не менее,
при доступе к WSDL для сервиса - кажется, что базовый адрес для net.pipe
быть проигнорированным IIS. Вместо этого я получаю реальное имя хоста машины и
Адрес URN net.pipe, который, кажется, полностью отформатирован IIS.
<wsdl:port name="NetNamedPipeBinding_IAdministration" binding="tns:NetNamedPipeBinding_IAdministration">
<soap12:address location="net.pipe://realhostname/service/Administration.svc"/>
<wsa10:EndpointReference>
<wsa10:Address>net.pipe://realhostname.com/service/Administration.svc</wsa10:Address>
<Identity>
<Spn>host/realhostname.com</Spn>
</Identity>
</wsa10:EndpointReference>
</wsdl:port>
Без контроля над тем, как формируются имена net.pipe, я не смогу различить
между несколькими экземплярами обслуживания клиентов на машине. Кто-нибудь знает, как
можно ли контролировать URN привязки именованных каналов в среде IIS?
(во время тестирования я часто использую автономный хостинг net.pipe (т.е. новый ServiceHost ())
поэтому я знаю, что мои привязки net.pipe работают вне IIS и позволяют контролировать
над точной именованной трубой URN используется)
Если имена не могут контролироваться в IIS - есть ли у кого-нибудь опыт работы с
хостинг и доступ к нескольким отдельным экземплярам службы net.pipe на одном
машина