Получение исключения в сервисе wcf - протокол 'net.pipe' не поддерживается

У меня есть развертывание службы WCF на IIS 7 с поддержкой не-HTTP включен

В рамках одного проекта я выставил 8 различных сервисов с wsHttp конечные точки, которые работают нормально.

Хочу также выставить NetNamedPipe привязки для одних и тех же услуг.

Мой образец NetNamedPipe привязки.,,

<netNamedPipeBinding>
    <binding name="PassportIPCBasicEndpoint" 
         closeTimeout="00:05:00" openTimeout="00:05:00" receiveTimeout="00:10:00" 
         sendTimeout="00:05:00"
         maxBufferSize="2147483647" maxBufferPoolSize="2147483647" 
         maxReceivedMessageSize="2147483647" transferMode="Buffered"
         hostNameComparisonMode="Exact"  >
      <readerQuotas
           maxDepth="2147483647" maxStringContentLength="2147483647" 
           maxArrayLength="2147483647" maxBytesPerRead="2147483647" 
           maxNameTableCharCount="2147483647"/>
      <security mode="Transport">
         <transport protectionLevel="None" />
      </security>
   </binding>
</netNamedPipeBinding>

И мои метки обслуживания

<service behaviorConfiguration="default" name="MyAccountService.AccountService">
   <host>
      <baseAddresses>
         <add baseAddress="http://localhost/MyAccountService/v1.0/AccountService.svc" />
      </baseAddresses>
   </host>
   <endpoint name="PassportIPCBasicEndpoint" 
       address="net.pipe://localhost/MyAccountService/v1.0/AccountService.svc" 
       binding="netNamedPipeBinding" 
       bindingConfiguration="PassportIPCBasicEndpoint" 
       contract="MyAccountService.IAccountService"/>
</service>

Это дает мне следующее исключение:

Протокол net.pipe не поддерживается.

[InvalidOperationException: протокол 'net.pipe' не поддерживается.] System.ServiceModel.Activation.HostedTransportConfigurationManager.InternalGetConfiguration(схема String)

[InvalidOperationException: ChannelDispatcher по адресу "net.pipe://localhost/MyAccountService/v1.0/AccountService.svc" с контрактом (-ами) "IAccountService" "не может открыть свой IChannelListener.]

Я добавил запись для http, net.pipe в дополнительных настройках сайта в IIS.

Поддержка не-HTTP для службы WCF также устанавливается и включается через настройки панели управления.

Из 8 сервисов.svc только один такой сервис может захватить порт, и я могу просмотреть его конечную точку.SVC

все другие сервисы, настроенные на привязку к сетевому имени, выдают мне вышеуказанные ошибки.

Может ли какое-то тело направить меня, что нужно сделать, чтобы все они овладели портом и были доступны.

2 ответа

Решение

Эта проблема была с включением протоколов в правильном месте. Ранее я включил протокол net.pipe на уровне сайта.

После включения протокола net.pipe на каждом виртуальном пути размещаемых сервисов. Это сработало.

netNamedPipe привязка предназначена только для связи на одном компьютере - такую ​​конечную точку нельзя вызвать с удаленного компьютера.

Это то, что вы пытаетесь сделать??

netNamedPipe привязка отлично подходит для связи внутри приложения на той же машине - но не для чего-то еще, на самом деле.

Другие вопросы по тегам