我們使用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