NET引擎服务开发与不能捕获的异常

NET ServiceBase异常处理
本文介绍如何在.NET的ServiceBase类中实现异常处理,确保服务即使遇到未被捕获的异常也能稳定运行。通过注册未处理异常事件和日志记录机制,有效避免因意外错误导致的服务崩溃。

NET开发ServiceBase系统引擎服务,在服务的运行过程中捕获NETFRAMEWORK不能捕获的异常

 

在制作引擎服务的过程中,可能遇到Try Catch 之外的异常导致服务停止,所以同时需要处理这种异常,保证引擎的正常运行。

 

服务:

1. 在Main组件中继承System.ServiceProcess.ServiceBase类,并重写OnStart方法启动服务。

2. 在CMDInstall组件中继承System.Configuration.Install.Installer类,并重写OnAfterInstall方法,以使在CMD命令中可以使用install安装服务。

不能捕获的异常:

在TestEngineException类的析构函数中制作一个错误的运算,抛出异常。

 

启动函数:Program类中调用ServiceBase.Run() 启动服务。

 

完整代码:

 

Main.Designer.cs类的InitializeComponent() 中可以调用 this.ServiceName = "EngineTest" 设置服务名称;

 

 

 

将真实环境中要启动引擎服务的CMD批处理文件拷贝到bin目录,运行intall.bat将启动服务,uninstall.bat停止服务。

intall.bat:

%WinDir%/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe EngineTest.exe

cmd.exe

uninstall.bat

%WinDir%/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe /u EngineTest.exe

cmd.exe

 

注:调试模式需要设置Debug模式,发布的状态请设置Release模式。

      调试模式不用运行CMD批处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值