您的位置:首页 > 编程语言 > ASP

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

2011-12-10 19:12 288 查看
一、使用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文件名

提示卸载成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: