如何将exe文件包装为Windows服务

如何将exe文件包装为Windows服务,第1张

1. 新建一个项目,或者从选择当前解决方案--右键-添加--新建项目

2. 选择(项目类型)Visual C#项目,(模板)Windows 服务,填写要创建的服务名称(修改默认的WindowService1成为你自己的服务名称),然后按确定按钮.

3. 资源管理器中默认创建一个WindowsService1的项目,项目下包括一个Service1.cs文件

4. 左侧选择"工具箱"--"组件",拖动一个Timer对象到Service1.cs [设计]这个页面窗体上.点击窗体上的Timers1足见,设置其属性:Interval属性数字N(例如200毫秒==1秒进行5次 *** 作)

5.双击这个Timer1组件填加自己所需要的功能函数

private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)

{

//本机电脑硬件配置文件

string strFileName=@"c:\ComputerInfo.txt"

string strTest="硬盘信息+显卡信息+主板信息+声卡信息+网卡信息+打印机信息"

//判断传送文件是否存在.如果不存在则写入一行测试信息

if (!File.Exists(strFileName))

{

File.CreateText(strFileName)

}

byte[] content=Encoding.UTF8.GetBytes(strTest)

//创建文本文件对象

FileStream fs=new FileStream(strFileName,FileMode.OpenOrCreate,FileAccess.ReadWrite)

//文件中写入测试数据

fs.Write(content,0,content.Length)

//关闭文件对象

fs.Close()

}

6.添加完相应的函数代码后,从代码视图切换到设计视图,点鼠标右键选择“添加安装程序”

7. 然后在当前项目资源管理器中会发现多了一个ProjectInstaller.cs文件,点击该文件打开ProjectInstaller.cs [设计]窗体.会发现里面自动有两个组件"serviceProcessInstaller1"和"serviceInstaller1"

8. 设置serviceInstaller1组件的属性:ServiceName = MyService(名字自己随意修改的)和 StartType = Automatic (开机自动运行方式)

9. 设置serviceProcessInstaller1组件的属性:Account = LocalSystem

10. 选择当前解决方案,设置方案属性中的"启动项目"为刚才所添加的项目名称.按F5运行编译当前项目,会d出一个对话框"无法从命令行或者调试器启动服务, 必须首先安装Windows服务(使用installutil.exe),然后用Server Explorer、Windows服务管理工具或NET START命令启动它"。错误没有关系,只要当前解决方案\项目文件夹\bin\Debug\文件夹下面多了一个EXE文件就好了.

至此自己需要的服务基本 *** 作已经完成.剩下来的就是编译.注册启动服务了.

11.Windows服务器注册停止

打开CMD窗口--开始--运行--输入CMD,回车

注册服务命令

cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322

InstallUtil D:\HardWareServerService.exe

nets tart ComputerService

重新注册服务

cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322

InstallUtil /u d:\HardWareServerService.exe

从您的C# 解决方案下拷贝HardWareServerService.exe文件到D盘HardWareServerService.exe

InstallUtil D:\HardWareServerService.exe

net start ComputerService

其中D:\HardWareServerService.exe可以修改成"您当前的解决方案目录\项目名称\bin\Debug\HardWareServerService.exe"

12.启动刚注册服务: 显示桌面-在桌面上右击“我的电脑”,选择“管理”就可以打计算机管理控制台,选择“服务和应用程序”里面的“服务”,在右侧的服务列表中找到刚注册的 ComputerService服务(默认状态为停止),选择该服务右击启动所选择的ComputerService服务就完成了所有的 *** 作,以后每次开机后就自动启动运行该服务.

13.注册后产生的一个问题

机器重新启动后,发现本机的sql server数据库连接不上,数据库服务器没有启动,手动启动后会提示错误“SQLServer2000发生错误1069--由于登陆失败而无法启动服务”。解决方法:开始->管理工具->服务,找到MSSQLSERVER服务,右键->属性->登录,登陆身份选择此帐户:输入用户名.\Administrator,重新输入密码和确认密码,点确定按钮返回.问题解决!

1、要实现这个功能需要先下载微软提供的两个小工具:“instsrv.exe”和“srvany.exe”。

*Instsrv.exe(可以给系统安装和删除服务),Srvany.exe(可以让程序以服务的方式运行)

2、先下载这两个程序然后放在同一个目录。

3、运行:instsrv.exe 服务名称 srvany.exe,进行注册服务。

4、然后打开注册表编辑器,打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,找到刚刚注册的服务名,新建“Parameters”项,然后在右侧的窗口新建一个字符串值名称为“Application”,将其值设置为程序所在路径即可。

你好.完全可以的.服务器其实就是一台放在机房的高端电脑.它与我们平时用的电脑一样.有独立的系统.用户在本地通过远程的方式来管理.只要是在本地电脑上可以运行的软件.程序.在服务器上也一样可以运行.

海腾数据杨闯为你解答.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11903728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存