C#系统服务安装
转载 http://blog.csdn.net/vvhesj/article/details/8349615
1.1创建WindowsService项目
导入需要的引用比如System.configuration、System.Web.Service(网站服务)、System.Windows.Forms(应用程序服务)、Newtonsoft.Json(json数据,这个很常用),按自己需要添加。
添加app.config用于管理配置信息
2.1添加安装程序
打开Service.cs右键点击,添加安装程序,会自动添加安装程序类,保存下就行了。
Service.cs的属性需要设置下 1)ServiceName 服务器名,最好用英文。2)StartType设置Automatic自动启动就好了。Disable禁用没人会用吧。Manual手动。
ProcessInstaller.cs的属性需要设置下 1)Account设置LocalSystem 本地系统就行了。
LocalService 充当本地计算机上非特权用户的帐户,该帐户将匿名凭据提供给所有远程服务器。
LocalSystem 服务控制管理员使用的帐户,它具有本地计算机上的许多权限并作为网络上的计算机。
NetworkService 提供广泛的本地特权的帐户,该帐户将计算机的凭据提供给所有远程服务器。
User 由网络上特定的用户定义的帐户。如果为 ServiceProcessInstaller.Account 成员指定 User,
则会使系统在安装服务时提示输入有效的用户名和密码,
除非您为 ServiceProcessInstaller 实例的 Username 和 Password 这两个属性设置值。
3.1编写代码
Service.cs服务类写服务启动关闭定时运行的方法
其他的按正常写代码一样添加类库,写需要的代码。
4.1安装服务
去bin\debug下面找到service的EXE文件,复制到需要安装的地方,比如windows\System32之类的地方
输入完整的debug目录下的InstallUtil.exe 空格 输入刚刚复制的service.exe的完整路径,回车进行安装
4.2安装服务
通过新建项目window安装包进行封装,这个就不讲解了
http://blog.csdn.net/dyzcode/article/details/6981547 可以看这里
4.3安装服务
通过在ProcessInstaller.cs添加代码
- /// <summary>
- /// 安装服务
- /// </summary>
- /// <param name="stateSaver"></param>
- public override void Install(System.Collections.IDictionary stateSaver)
- {
- Microsoft.Win32.RegistryKey system,
- //HKEY_LOCAL_MACHINE\Services\CurrentControlSet
- currentControlSet,
- //...\Services
- services,
- //...\<Service Name>
- service,
- //...\Parameters - this is where you can put service-specific configuration
- config;
- try
- {
- //Let the project installer do its job
- base.Install(stateSaver);
- //Open the HKEY_LOCAL_MACHINE\SYSTEM key
- system = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("System");
- //Open CurrentControlSet
- currentControlSet = system.OpenSubKey("CurrentControlSet");
- //Go to the services key
- services = currentControlSet.OpenSubKey("Services");
- //Open the key for your service, and allow writing
- service = services.OpenSubKey(conServiceName, true);
- //Add your service's description as a REG_SZ value named "Description"
- service.SetValue("Description", "<span style="font-family:KaiTi_GB2312;">描述语言</span>");
- //(Optional) Add some custom information your service will use...
- config = service.CreateSubKey("Parameters");
- }
- catch (Exception e)
- {
- Console.WriteLine("An exception was thrown during service installation:\n" + e.ToString());
- }
- }
- /// <summary>
- /// 卸载服务
- /// </summary>
- /// <param name="savedState"></param>
- public override void Uninstall(System.Collections.IDictionary savedState)
- {
- Microsoft.Win32.RegistryKey system,
- currentControlSet,
- services,
- service;
- try
- {
- //Drill down to the service key and open it with write permission
- system = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("System");
- currentControlSet = system.OpenSubKey("CurrentControlSet");
- services = currentControlSet.OpenSubKey("Services");
- service = services.OpenSubKey(conServiceName, true);
- //Delete any keys you created during installation (or that your service created)
- service.DeleteSubKeyTree("Parameters");
- //...
- }
- catch (Exception e)
- {
- Console.WriteLine("Exception encountered while uninstalling service:\n" + e.ToString());
- }
- finally
- {
- //Let the project installer do its job
- base.Uninstall(savedState);
- }
- }
代码添加完成后
添加window service安装的批处理命令
1)在项目添加一个文本文件,更名为install.bat,编辑文件的内容如下:
@echo off
C:\WINDOWS\Microsoft.Net\Framework\v2.0.50727\InstallUtil.exe -i "WindowsService1.exe"
@pause
2)在项目添加一个文本文件,更名为uninstall.bat,编辑文件的内容如下
@echo off
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe -u "WindowsService1.exe"
@pause
install.bat即完成安装。
C#系统服务安装的更多相关文章
- Windows 安装 MongoDB 服务
第一步 以管理员权限打开命令提示符 按Windows+R键(Ctrl和Alt中间的那个,有微软Logo的键),输入cmd打开命令提示符 第二步 创建数据库目录. 使用mkdir命令,创建数据库的目录和 ...
- Windows Server 2008安装Memcached笔记
分布式缓存系统Memcached简介与实践 缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然 ...
- 从编译安装Keepalived 到 配置 负载均衡(LVS-DR)
最近在研究服务器高可用集群 (HA)…… Keepalived 是用C写的软路由.提供负载均衡与高可用特性. 负载均衡利用IPVS技术 高可用通过VRRP协议实现 更难能的贵的是,一直到最近还在更新 ...
- saltstack自动化运维系列12配置管理安装redis-3.2.8
一.准备redis自动化配置的文件(即安装一遍redis,然后获取相关文件和配置在salt中执行上线) 1.源码安装redis3.2.8并注册为系统服务 安装依赖yum install -y tcl ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(四)
MyEclipse超值折扣 限量 100 套! 立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的形 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(三)
MyEclipse超值折扣 限量 100 套! 立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的形 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(二)
你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(一)
你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(七)
[周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包 ...
随机推荐
- [CQOI2009]dance跳舞
每个人拆成两个点,一个表示接受喜欢的,一个表示不接受喜欢的,(男yes,男no,女yes,女no) 男yes->男no,容量为k:女no->女yes,容量为k 男女喜欢,则男yes-> ...
- Java集合中迭代器的常用用法
该例子展示了一个Java集合中迭代器的常用用法public class LinkedListTest { public static void main(String[] args) { List&l ...
- 论文笔记(4):Fully Convolutional Networks for Semantic Segmentation
一.FCN中的CNN 首先回顾CNN测试图片类别的过程,如下图: 主要由卷积,pool与全连接构成,这里把卷积与pool都看作图中绿色的convolution,全连接为图中蓝色的fully conne ...
- Maven错误信息:Missing artifact jdk.tools:jdk.tools:jar:1.6
在pom.xml中添加依赖: <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.too ...
- Linux-Centos7----安装Python的psutil模块插件
# wget https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz # tar zxvf psutil-2.1.3. ...
- 在CentOS7中安装.Net Core2.0 SDK
1.sudo yum install libunwind libicu(安装libicu依赖) 2.curl -sSL -o dotnet.tar.gz https://go.microsoft.co ...
- Swift 笔记汇总
Swift 3 笔记 Swift: The Basics :介绍 Swift 一些零碎的点. Swift: Basic Operators :介绍 Swift 的操作符. Functions : 介绍 ...
- 可能是最好的SQL入门教程
个人博客:这可能是最好的SQL入门教程
- CentOS7.2下Nginx的使用
Nginx的启动 指定配置文件的方式启动 nginx -c /etc/nginx/nginx.conf 对于yum安装的nginx,使用systemctl命令启动 systemctl start ng ...
- java报错排解
1.eclipse新安装第一次启动报错: Javawas started but returned exit code=13-- 这是由于JDK和eclipse和电脑的位数不一致所致,要么都为32位, ...