[英]Can I host a WCF Service in a windows service?
我通過添加新項目-> WCF服務庫創建了WCF項目,當我在開發環境中運行它時,它將打開WCF測試客戶端。 我如何在未安裝Visual Studio的服務器上安裝此服務(我不想在IIS上托管它)。 我應該寫一個新的Windows服務嗎?
創建一個Windows服務項目。
將WCF服務添加到該項目。
在主要的Windows Service類(默認為Service1.cs)中,添加一個成員:
internal static ServiceHost myServiceHost = null;
修改OnStart()以使用WCF服務類型啟動新的ServiceHost:
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進行此設置。
最后,請參考: 錯誤5:如果在安裝后啟動Windows Service時遇到問題,則啟動Windows Service時訪問被拒絕 。
您需要創建Windows服務項目,然后添加對WCF服務的引用並將其托管。 為了安裝該服務,您不需要Visual Studio,需要使用installutil.exe
。
在這里看看。
看一下TopShelf庫。 我用它來創建許多WCF服務。
提示:如果您打算編寫更多的WCF服務,那么閱讀端口共享可能是值得的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.