I am trying to configure net.pipe bindings on a server between two processes (in the same field). I all work locally on Windows 7, but on a production server (Windows Server 2008 R2) it does not work.
I can verify that I have:
- Added net.pipe binding to the IIS website (added * as information).
- Added net.pipe to the list of bindings in the "advanced settings" for the IIS website.
That is all that was required on my dev machine. Anything else I need to do?
The error I get is a simple test application client for the console:
Unhandled exception: System.ServiceModel.EndpointNotFoundException: there was no listening for endpoints in net.pipe: //nameOfService.svc that could receive this message. This is often caused by the wrong address or SOAP action. See InnerException, if available, for more information. ---> System.IO.PipeException: The pipe endpoint net.pipe: //nameOfService.svc was not found on your local computer. `
Here are some configs:
Customer:
<system.serviceModel>
<bindings>
<netNamedPipeBinding>
<binding name="NetNamedPipeBinding_IWebAppNotifyService">
<security mode="None" />
</binding>
</netNamedPipeBinding>
</bindings>
<client>
<endpoint address="net.pipe://nameOfService.svc"
binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_IWebAppNotifyService"
contract="ServiceReference2.IWebAppNotifyService" name="NetNamedPipeBinding_IWebAppNotifyService" />
</client>
</system.serviceModel>
Server:
<bindings>
<netNamedPipeBinding>
<binding name="WebAppNotifyServiceBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="None">
</security>
</binding>
<binding name="ScannerManagerCommandBinding">
<security mode="None" />
</binding>
</netNamedPipeBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="WebAppNotifyServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="MonitoringApp.Notifier.WebAppNotifyService" behaviorConfiguration="WebAppNotifyServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="net.pipe://nameOfService.svc" />
<add baseAddress="http://nameOfService" />
</baseAddresses>
</host>
<endpoint address="" binding="netNamedPipeBinding" bindingConfiguration="WebAppNotifyServiceBinding" contract="X.Y.IWebAppNotifyService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
Update:
The application pool associated with the website hosting the net.pipe binding is run under the "NetworkService" user, if that matters.
I enabled non-HTTP activation in Windows Features for.NET 3.5.1, although this works under .NET 4.
source
share