我通過添加新項目 - > WCF服務庫創建了一個WCF項目,當我在開發環境中運行它時,它打開了WCF測試客戶端。如何在沒有安裝Visual Studio的服務器上安裝此服務(我不想在IIS上託管它)。我應該寫一個新的Windows服務?我可以在Windows服務中託管WCF服務嗎?
2
A
回答
5
創建一個Windows服務項目。
將您的WCF服務添加到此項目。
在主Windows服務類(默認爲Service1.cs),添加一個成員:
internal static ServiceHost myServiceHost = null;
修改的OnStart()開始新的ServiceHost與WCF服務類型:
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(MyService));
myServiceHost.Open();
}
修改調用OnStop():
protected override void OnStop()
{
if (myServiceHost != null)
{
myServiceHost.Close();
myServiceHost = null;
}
}
添加安裝和部署項目(安裝項目)到您的解決方案。將該項目的輸出設置爲Windows Service項目的主輸出。在生成安裝和部署項目時,應該會看到一個可用於安裝該服務的Setup.exe文件。
請記住,您仍然需要設置您的端點和綁定。看看使用nettcpbinding進行此設置。
如果您在安裝後啓動Windows服務時遇到問題,請參考:Error 5 : Access Denied when starting windows service。
0
您需要創建一個Windows服務項目,然後將引用添加到您的WCF服務並承載它。爲了安裝該服務,您不需要visual studio,則需要使用installutil.exe
。
看一看here。
0
查看TopShelf庫。我用它來創建一些WCF服務。
提示:如果您打算編寫更多的WCF服務,可能值得您一邊閱讀端口共享。
相關問題
- 1. 託管WCF的Windows服務 - 我可以在WCF服務中停止Windows服務嗎?
- 2. IIS WCF服務託管與Windows服務
- 3. 作爲Windows服務託管WCF服務
- 4. Windows服務託管的TCP WCF服務
- 5. Windows服務與託管的WCF服務
- 6. WCF和託管Windows服務
- 7. 多個客戶端可以訪問Windows服務中託管的WCF服務嗎?
- 8. 我可以在COM +中託管WCF服務嗎?
- 9. 託管在Windows服務託管的WCF服務
- 10. 我如何在Windows服務中託管WCF服務?
- 11. 在Windows 2008的Windows服務中託管WCF(mex endpoint)服務
- 12. Odata服務可以作爲Windows服務託管嗎?
- 13. 我可以在Windows服務中託管(自我託管)WCF服務並通過http公開它?
- 14. ASP.net服務器連接與WCF服務託管在Windows服務
- 15. Windows託管的WCF服務可以使用HTTPS嗎?
- 16. Windows託管服務可以成爲wcf客戶端嗎?
- 17. Windows服務「自我託管」WCF:壓縮?
- 18. WCF託管在Windows服務+網頁中?
- 19. 自我託管wcf服務
- 20. 託管WCF服務
- 21. WCF服務託管
- 22. IIS可以託管WCF服務執行後臺任務嗎?
- 23. 在windows服務中託管的WCF服務的異步調用
- 24. 託管在Windows服務上的WCF服務中的log4net
- 25. 在Windows服務中託管的WCF服務(basicHttpBinding)的WSDL URL
- 26. 部署基於TCP的WCF服務,託管在Windows服務中
- 27. 在Windows服務中託管多個Wcf服務
- 28. 在Windows服務中託管WCF服務的框架
- 29. 在Windows服務中託管WCF服務。無法達到
- 30. 如何在1個Windows服務中託管2個WCF服務?
任何原因'myServiceHost'是內部的而不是私人的? – ProfK 2015-01-24 09:50:33
@ProfK號。再說一遍,我很久以前就寫過這個答案,所以當時在給定完整背景下可能有一個理由。 – 2015-04-23 19:38:43