I'm trying to configure net.pipe bindings on the server between 2 processes (on the same box). I have all this working locally in Windows 7, but on the production server (Windows Server 2008 R2), it fails to work.
我正在配置net。服务器上的管道绑定在两个进程之间(在同一个框中)。所有这些在Windows 7中都可以在本地运行,但在生产服务器(Windows server 2008 R2)上却无法工作。
I can verify that I have:
我可以证明我有:
- Added a net.pipe binding to the IIS "Web Site" (added * as the information).
- 添加了一个网。将管道绑定到IIS“Web站点”(添加*作为信息)。
- Added net.pipe to the list of bindings in "advanced settings" for the IIS "Web Site".
- 添加网络。管道到IIS“Web站点”的“高级设置”中的绑定列表。
That's all that was required on my dev machine. Is there anything else I need to do?
这就是我的开发机器所需要的。我还需要做什么吗?
The error I get is from a simple console app test client:
我得到的错误来自于一个简单的控制台应用程序测试客户端:
Unhandled Exception: System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at net.pipe://nameOfService.svc that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. ---> System.IO.PipeException: The pipe endpoint 'net.pipe://nameOfService.svc' could not be found on your local machine.`
未处理的例外:System.ServiceModel。EndpointNotFoundException:在net.pipe:/ nameOfService没有端点监听。可以接受消息的svc。这通常是由错误的地址或SOAP操作引起的。有关更多细节,请参见InnerException(如果存在)。推荐- - - - - - >先。PipeException:管道端点的net.pipe://nameOfService。在你的机器上找不到svc。
Here's some configs:
这里有一些配置:
Client:
客户:
<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 app pool associated with the web site that hosts the net.pipe binding is running under the "NetworkService" user, if that makes a difference.
与承载网络的网站相关联的应用程序池。管道绑定在“NetworkService”用户下运行,如果这有影响的话。
I have enabled Non-HTTP activation under Windows Features for .NET 3.5.1, although this is running under .NET 4.
我已经为。net 3.5.1启用了Windows特性下的非http激活,尽管这是在。net 4下运行的。
2 个解决方案
#1
7
- Have you enabled the windows services
Net.Pipe Listener Adapter
andWindows Process Activation Service
? - 您启用了windows服务网络吗?管道监听器适配器和Windows进程激活服务?
- Have you enabled
net.pipe
binding on the site level? - 你净启用。管子在现场装订?
- Have you added
net.pipe
protocol on the vdir level? - 你净补充道。在vdir级别上的管道协议?
#2
0
I was getting the same EndPointNotFound error on net.pipe://localhost/ for the SharePoint Secure Token Service.
我在网络上得到了相同的EndPointNotFound错误。管道://localhost/用于SharePoint安全令牌服务。
It worked on my dev system but not production.
它对我的开发系统有效,但对产品无效。
For me, it was because the Dell Change Auditor Agent service was running on my production servers.
对我来说,这是因为戴尔变更审计代理服务在我的生产服务器上运行。
https://blogs.msdn.microsoft.com/spses/2016/01/21/sharepoint - 2013 -不- - viewedit -办公室-文件-浏览器-使用-办公室- web -应用程序- 2013/
#1
7
- Have you enabled the windows services
Net.Pipe Listener Adapter
andWindows Process Activation Service
? - 您启用了windows服务网络吗?管道监听器适配器和Windows进程激活服务?
- Have you enabled
net.pipe
binding on the site level? - 你净启用。管子在现场装订?
- Have you added
net.pipe
protocol on the vdir level? - 你净补充道。在vdir级别上的管道协议?
#2
0
I was getting the same EndPointNotFound error on net.pipe://localhost/ for the SharePoint Secure Token Service.
我在网络上得到了相同的EndPointNotFound错误。管道://localhost/用于SharePoint安全令牌服务。
It worked on my dev system but not production.
它对我的开发系统有效,但对产品无效。
For me, it was because the Dell Change Auditor Agent service was running on my production servers.
对我来说,这是因为戴尔变更审计代理服务在我的生产服务器上运行。
https://blogs.msdn.microsoft.com/spses/2016/01/21/sharepoint - 2013 -不- - viewedit -办公室-文件-浏览器-使用-办公室- web -应用程序- 2013/