Mat*_*rts 5 .net wcf wcf-binding net.pipe
我正在尝试在两个进程之间(在同一个盒子上)配置服务器上的net.pipe绑定.我在Windows 7中本地工作,但在生产服务器(Windows Server 2008 R2)上,它无法正常工作.
我可以证实我有:
这就是我的开发机器所需的全部内容.还有什么我需要做的吗?
我得到的错误来自一个简单的控制台应用程序测试客户端:
未处理的异常:System.ServiceModel.EndpointNotFoundException:net.pipe://nameOfService.svc上没有可以接受该消息的端点.这通常是由错误的地址或SOAP操作引起的.有关更多详细信息,请参阅InnerException(如果存在).---> System.IO.PipeException:在本地计算机上找不到管道端点'net.pipe://nameOfService.svc'.
这里有一些配置:
客户:
<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>
Run Code Online (Sandbox Code Playgroud)
服务器:
<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>
Run Code Online (Sandbox Code Playgroud)
更新:
与承载net.pipe绑定的网站关联的应用程序池在"NetworkService"用户下运行,如果这有所不同.
我在Windows 3.5.1的Windows功能下启用了非HTTP激活,尽管它在.NET 4下运行.
Net.Pipe Listener Adapter和Windows Process Activation Service?net.pipe在网站级别启用了绑定?net.pipe在vdir级别添加协议?