Получение исключения в сервисе wcf - протокол 'net.pipe' не поддерживается - PullRequest
1 голос
/ 09 февраля 2012

У меня есть развертывание службы 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 (схема строки) *

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

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 25 февраля 2012

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

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

0 голосов
/ 09 февраля 2012

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

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

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

...