Получение исключения в сервисе 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
привязка отлично подходит для связи внутри приложения на той же машине - но не для чего-то еще, на самом деле.