我们使用IIS 7托管约20个服务与net.tcp和net.pipe绑定,它工作正常。
您的管道问题看起来像我的配置错误。如果有帮助,这是我们如何让他们配置:
服务器:
<endpoint address ="" binding="fooBinding"
contract="Bla.IBlaAPI"
bindingConfiguration="BlaAPI.BindingConfig">
绑定配置:
<binding name="BlaAPI.BindingConfig"
receiveTimeout = "10:50:00"
sendTimeout = "10:50:00"
maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
transactionFlow="false">
<readerQuotas maxDepth="32"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="8192"
maxNameTableCharCount="2147483647" />
<security mode="None"/>
</binding>
注意,我们使用的是长超时和具有非常高消息大小等配额,因为我们通过此服务传递一些大块数据。您可以根据自己的需要进行调整。我们将安全性设置为“无”,因为该服务只能从本地安全机器联系。同样,你的里程可能会有所不同
客户:
<endpoint name="Bla.Bindings.BlaAPI" address="net.pipe://localhost/bla/IBlaAPI.svc"
behaviorConfiguration="BlaAPI.ServiceBehavior"
binding="netNamedPipeBinding" bindingConfiguration="BlaAPI.BindingConfig"
contract="Bla.IBlaAPI" />
关于故障状态问题,请注意,如果该服务代码的执行过程中发生未处理的异常时,服务实例将保持在故障状态,直到它被正确关闭。为避免出现这种情况,请处理服务顶级的异常或使用(例如,Enterprise Library Excexption Handling块)。
你可以发布你的绑定配置节点吗?你的命名管道也必须做任何有关权限或身份的事情吗? – sipwiz 2009-11-10 12:42:11
完成后,添加了我们的绑定配置。关于安全性,我们使用“无”,因为所有访问都是本地的。 – 2009-11-10 12:49:44
看起来像我netNamedPipeBinding的问题是Vista和/或IIS7之一。即使尝试完全相同的配置,它也不适用于我的Vista开发PC,但在我的Win2k3/IIS6服务器上运行良好。 – sipwiz 2009-11-10 13:38:07