asp.net 对系统服务的控制和c#编写系统服务

来源:互联网 发布:mac介质访问控制 编辑:程序博客网 时间:2024/06/06 13:36
一、使用asp.net对服务器服务的控制
通过自己的网站直接了解服务器的运行情况,控制服务器的各项服务器是每个管理员非常希望做的事情。我也正式因为考虑到远程登入烦琐占用带宽等的原因才决定这样做。经过实验和收集资料,发现用asp.net控制系统服务还是相当简单的。主要有以下几个步骤:
1、为网站添加新的引用,加入:system.serviceproces.dll
2、在代码文件头部加如:using System.ServiceProcess;
3、服务的启动使用如下代码:
ServiceController sc = new ServiceController("service1");
if (sc.Status == ServiceControllerStatus.Stopped)
{
sc.Start();
}
4、服务的关闭使用如下代码:
ServiceController sc = new ServiceController("service1");
if (sc.Status == ServiceControllerStatus.Running)
{
sc.Stop();
}
5、服务的控制权限的解决办法
windows2003等服务器系统都提供了完善的权限访问机制,这就是我为什么不用前面说过的在asp.net 中调用另一个程序的办法来通过net 命令启动和停止服务。因为首先用net命令显然比较麻烦,而调用新进程的发放程序运行依然是在aspnet的用户下(通过网页访问的默认用户),当网页关闭,会话结束时间到达就会自动释放该用户运行的相关程序。而net命令同样需要相应权限。asp.net 中可以在web.config的下添加
从而解决用户的登入权限问题。
以上五步就可以完成对服务器服务的控制了!
二、c#编写系统服务程序
C#建立windows服务程序也并非难事。
1、首先当然是添加新项目,然后选择“windows 服务”
2、建立了如:MyService项目,在你的Service1.cs 文件里面
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
}
protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
}
写服务程序主要就是将自己的代码写在上面了。具体写什么大家可以本着想写什么写什么的思路ToDO了!
当然,还没完要是这么简单就不是服务程序了,说是服务程序总要和普通的windows应用程序有所区别吧,区别在下面:
当我们写完了自己想写的代码,下对的就是如何在系统上面安装上自己的服务程序了。按下面TODO吧:
1、安装前的应用程序设置
在项目资源管理器里点击刚才Service1.cs,如果这是后是代码模式的话,点设计模式,注意它的代码和设计模式切换是在项目资源管理器里的头头上面,不是在我们熟悉的设计窗口的做下角哦(图一)。这是切换好了后,在设计窗口上右键,发现了"添加安装文件"添加后,发现设计模式下多出serviceINstaller1和serviceProcessInstaller1两个组件,而解决方案资源管理器下多出了projectinstaller.cs文件,此文件没有特别需要不需要去改它,先选择serviceINstaller1,在他的属性中account就是服务运行的模式(网络,本地...)选择自己需要的就好
再选择serviceINstaller1组件,它的属性里Descripton是服务描述,ServiceName是服务名称,StarType是服务启动形式(可选手动,自动,禁止)把这些通通改为自己喜欢的,选择生成下面的“生成..”,(注意服务程序编写整个过程严禁用F5方式)没有错误的话就生成了需要的exe了。
2、安装程序的准备工作
为了方便安装,在你的电脑上找到InstallUtil.exe程序。将他拷贝到和你生成的exe同一个位置。
3、安装
在命令行下将目录切换到你的exe文件位置,用命令:
InstallUtil  你的exe文件名
提示安装成功!
4、卸载
在命令行下将目录切换到你的exe文件位置,用命令:
InstallUtil /u  你的exe文件名
提示卸载成功
原创粉丝点击