新建和發布Windows服務的幾個常見問題
1. 如何安裝服務?
利用.Net Framework帶的服務安裝工具InstallUtil.exe,它位於c:/windows/Microsoft.Net/Framework/v1.1.4322/文件夾下。
打開Visual Studio .Net 200* 命令提示,安裝命令是:
InstallUtil c:/test.exe (c:/test.exe則為需要安裝的windows服務,如果路徑上帶空格,則需要在外麵添加引號,例如:InstallUtil "c:/program files/test.exe")
如果是打開的Dos命令控製台,則需要在InstallUtil前,加上路徑,命令格式如下:
c:/windows/Microsoft.Net/Framework/v1.1.4322/InstallUtil.exe c:/test.exe
卸載服務,在InstallUtil後添加-u參數即可:
InstallUtil -u c:/test.exe
2. 安裝時,彈出對話框,需要輸入用戶名和密碼,如何去掉輸入框?
在Visual Studio開發環境下,打開windows服務項目,找到文件ProjectInstaller.cs,該文件是新建windows服務後,自帶的安裝文件,裏麵包含了安裝服務的密碼、服務名等設置,和初始化的方法。
查看代碼,找到方法InitializeComponent(),將登陸帳戶設置為係統本地帳戶即可:
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
3. Windows服務名如何修改?
安裝好服務之後,我們可以在“服務”的窗口中,看到你注冊的服務組件了,右鍵菜單中有開始服務的選項。那麼服務名如何修改呢?
同樣在ProjectInstaller.cs類中的InitializeComponent()方法中,添加設置:
this.serviceInstaller1.DisplayName = "Test Server";
注意:這個隻是服務的別名,事實上服務的實際名稱是this.serviceInstaller1.ServiceName,而如果你注冊服務時,有兩個windows服務的ServiceName一致的話,將會拋出服務已存在的異常(即使你的DisplayName不一樣)。
4. 找不到配置文件。
如果Windows服務帶了除App.cofig之外的配置文件,則需要將它拷貝到安裝.exe文件所在的目錄,例如:如果你安裝c:/test.exe服務,則需要將該配置文件拷貝到c:/目錄下。
最後更新:2017-04-02 00:06:45