关于C#下面windows服务读取注册表的问题

本文描述了作者在尝试帮助同事解决C#编写的服务无法读取注册表内容的问题。首先考虑了权限问题,通过设置UAC权限和使用InstallUtil.exe安装服务,但服务启动后仍无法读取。最终发现是32位程序在64位系统上读取注册表位置不正确的问题,修正后解决了问题。

今天,同事跟我讲,写的windows服务读取不了注册表的内容,什么代码没有运行?说什么权限不够,还是什么问题,要帮他看看。

不太习惯在别人的代码下面去检查自己也不太熟的问题,干脆自己重新建个项目,一步步的设置。(新手可以参考c#创建windows服务入门教程实例

一开始我也怀疑是权限的问题,在程序下面设置了UAC的权限为管理员(如何设置,请参考c#通过app.manifest使程序以管理员身份运行)  


在服务的启动项处,写了一个读取注册表下面某个路径的值,然后写到到服务程序所在路径下面的一个日志文件中。


代码写完了,开始进行运行调试,为了模拟真实的运行环境,直接通过系统下面的程序来运行服务如下

用.net创建的安装Windows服务,可以直接用到一个名为InstallUtil.exe的命令行工具进行安装

安装命令:

installutil 服务名称(程序)

卸载命令:

installut

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值