新建和发布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:\目录下。