windows服務的編寫
1.要添加的引用
using System.ServiceProcess;
using System.ServiceModel ;
using WcfServiceLibraryAgain;//自己寫的WCF服務的名稱
2.寫windows服務
public partial class MainService : ServiceBase
{
ServiceHost host;
public MainService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
Type serviceType = typeof(Service1);//托管REST或非REST服務,方式一樣。Service1就是要托管的wcf服務的類
host = new ServiceHost(serviceType);
host.Open();
}
}
注意:要將WCF中的配置文件拷貝到windows服務程序的配置文件中。(這點很重要)
手動安裝windows服務
1.將Windows服務程序切換到設計視圖, 右擊設計視圖選擇“添加安裝程序”


2.切換到剛被添加的ProjectInstaller的設計視圖
設置serviceInstaller1組件的屬性:
1) ServiceName = 服務名稱
2) StartType = Automatic ,即自動,Manual是手動,剩下那個是禁用,不過這都不重要,安裝好后再服務管理器中可以很方便的設置。
設置serviceProcessInstaller1組件的屬性
1) Account = LocalSystem,賬戶一般設置為本地系統
DisPlayName中設置的名字即你打開服務管理器中服務的名稱,我這里叫MyService1
然后重新生成一下
3.右鍵點擊開始按鈕,選擇命令提示符(管理員)(A),也就是以管理員身份運行cmd,按如下路徑找到對應安裝服務的程序C-windows-Microsoft.NET-Framework-v4.0.30319-InstallUtil.exe,在cmd中輸入 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(即InstallUtil.exe的路徑,在其屬性中拷貝,必需右鍵粘貼),回車運行(注意cd 后要留空格)

右鍵解決方案,選擇在資源管理器中打開文件夾,找到要安裝的windows服務的exe文件,WindowService1-bin-Debug,拷貝其路勁,然后再cmd中繼續輸入命令InstallUtil.exe+空格+路徑(注意路徑要完整,Debug后還要加上\名稱.exe),然后回車運行完成安裝,關鍵截圖如下:




至此服務已安裝成功!打開服務管理器查看服務是否存在。

手動卸載windows服務
如果覺得寫的服務有問題或者是其他原因想卸載服務,在cmd中與安裝是幾乎相同的,第一步完全以樣,第二步的命令變為InstallUtil.exe +空格+ –u +路徑(注意路徑要完整,Debug后還要加上\名稱.exe)

補充:還可以用VS自帶的工具完成服務的安裝與下載,這時不需要做cmd中的第一步,直接到第二步就可以了,要方便一點,卸載時該用命令\u,下面詳細說一下用VS自帶的工具怎么卸載服務:


這時要注意還是要以管理員身份運行

安裝幾乎相同,就不用說了!
總結:手動安裝是服務安裝最老舊的方法,我們不能一直用這個方法,但是學會了手動安裝會讓我們對服務的裝原理更了解一些,對寫自動安裝與卸載還是有幫助的,希望對大家有所幫助!