我的WCF服務作爲Windows託管服務託管,所以我不確定我是否仍然可以使用netTcpBinding。我試過在MSDN上遵循一些指南,但出於某種原因,我的服務總是無法啓動,只要我從basicHttpBinding進行切換。也許還有其他步驟需要IIS以外的服務?我可以將netTcpBinding用於IIS以外託管的WCF服務嗎?
3
A
回答
4
是的,你可以在IIS之外的netTcpBinding,Windows服務甚至控制檯應用程序中託管WCF服務。
下面是配置文件示例:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="ServiceBehavior"
name="XX.XX.Service">
<endpoint address=""
binding="netTcpBinding"
bindingConfiguration="BindingConfiguration"
contract="XX.XX..IService" />
<endpoint address="mex"
binding="mexTcpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8731/XXService" />
</baseAddresses>
</host>
</service>
</services>
<bindings>
<netTcpBinding>
<binding
name="BindingConfiguration">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>
[編輯]
問題與您的配置文件:
- 基地址爲http來代替的net.tcp
- 元數據端點是mexHttpBinding而不是metTcpBinding
- 安全性 - 默認情況下將使用Windows授權,如果測試與框之間的通信,則可能有權限問題。我建議先從安全模式None開始,然後在其他所有工作時調整安全性。
- 你不需要指定httpGetEnabled服務行爲
- 如果你要使用的端口已在使用,您將無法啓動服務
2
你絕對可以和我甚至會說你應該。
這是你的問題:
<services>
<service name="Server.FileService" ...
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/Test/file"/>
</baseAddresses>
</host>
<endpoint address="" binding="netTcpBinding" contract="Server.IFile" />
<endpoint address="mex" binding="mexHttpBinding" ...
的net.tcp
地址必須有一個net.tcp://
前綴,不是http://
前綴。
我通常不會使用baseAddress
所以不能給出建議。我刪除baseAddress,而使用
<endpoint address="net.tcp://localhost:8001/Test/file" ..
(請注意,我也將選擇另一個端口超過8000個)
相關問題
- 1. WCF數據服務可以由IIS以外的東西託管嗎?
- 2. IIS可以託管WCF服務執行後臺任務嗎?
- 3. WCF:服務託管IIS以外使IIS的萎縮
- 4. 我可以在Windows服務中託管WCF服務嗎?
- 5. 部署使用netTcpBinding(不IIS)託管的WCF服務
- 6. 我可以使用IIS來託管WCF服務而不使用HTTP嗎?
- 7. IIS外部託管的WCF RIA服務
- 8. 我可以在WCF中使用netTcpBinding添加服務引用嗎?
- 9. 我可以通過非IIS託管的WCF服務提供網頁嗎?
- 10. 無法使用IIS中託管的netTcpBinding添加WCF服務的服務引用
- 11. 我可以在COM +中託管WCF服務嗎?
- 12. Windows託管的WCF服務可以使用HTTPS嗎?
- 13. 在IIS 8託管的WCF服務中共享端口80用於NetTcpBinding和BasicHttpBinding可能嗎?
- 14. 我應該在IIS中託管我的WCF服務嗎?
- 15. IIS託管的WCF服務可以配置爲Windows驗證和匿名嗎?
- 16. IIS WCF服務託管與Windows服務
- 17. 我可以在主域託管服務器以外的其他服務器上託管子域嗎?
- 18. 我可以在IIS之外託管ASP.NET網站嗎?
- 19. 我可以在IIS的同一網站上同時託管web服務和WCF服務嗎?
- 20. WCF服務netTcpBinding + Windows使用IIS託管並使用角色進行授權
- 21. Windows託管服務可以成爲wcf客戶端嗎?
- 22. 是否可以在IIS中託管WCF Web服務而不更改IIS?
- 23. 我可以在本地調用自託管WCF服務中的方法嗎?
- 24. 託管WCF的Windows服務 - 我可以在WCF服務中停止Windows服務嗎?
- 25. IIS託管的WCF服務和AppDomains
- 26. 關於wcf服務託管
- 27. 以編程方式在IIS中配置和託管WCF服務
- 28. 多個客戶端可以訪問Windows服務中託管的WCF服務嗎?
- 29. 使用IIS託管WCF服務的C#中的任務管理
- 30. 對WCF託管REST Web服務與IIS
你應該完全能夠做到這一點。你能分享相關的配置位嗎? – 2011-05-24 02:05:01
netTcpBinding可用於Windows服務託管端點。你可以給我們更多的上下文(錯誤消息,服務定義信息等) – dlev 2011-05-24 02:05:10
@Terry @dlev:我使用installutil.exe來啓動在VS2010之外運行的服務,所以我不確定如何獲取異常消息。這裏是我的app.config:http://pastebin.com/s3ibabxw – rafale 2011-05-24 02:09:52