关于系统服务的两个问题

roy_lo 2009-04-29 02:21:54
先说第一个:
我建立一个服务,在onstart中,如何终止服务的启动,并不要有服务终止或无法启动的任何对话框弹出。

第二个:
如下代码,我单独拿出来在form中执行正常,但是通过系统服务执行,
报错:DELREG模块错误,错误信息:System.NullReferenceException:未将对象引用设置到对象的实例。在Service.Service.delreg()
代码如下:

try
{
RegistryKey regkey;
regkey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Installer\Products\");
string[] keynames = regkey.GetSubKeyNames();
foreach (string kName in keynames)
{
string aa = regkey.OpenSubKey(kName).GetValue("ProductName").ToString();
if (aa == "Urum Test Service")
{
regkey.OpenSubKey(kName, true).DeleteValue("ProductName");
}
}
regkey.Close();
}
catch(Exception ex)
{
errWrite("DELREG模块错误,错误信息:" + ex);
}
...全文
71 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
roy_lo 2009-04-29
  • 打赏
  • 举报
回复
继续up
哪位来指教下啊
roy_lo 2009-04-29
  • 打赏
  • 举报
回复
UP
roy_lo 2009-04-29
  • 打赏
  • 举报
回复
UP
云想慕尘 2009-04-29
  • 打赏
  • 举报
回复
有类似问题
roy_lo 2009-04-29
  • 打赏
  • 举报
回复
第二个问题:在Products下,可以确定存在子项的,在form状态下是正常执行
tengjian1981 2009-04-29
  • 打赏
  • 举报
回复
第二个问题可能是Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Installer\Products\")为null,跟踪下service运行时的路径
roy_lo 2009-04-29
  • 打赏
  • 举报
回复
第1个问题是这样的:
服务启动时,先检测网络状态,若网络状态正常,立即执行后续的内容;
若检测到网络链接中断,等待60秒,再次检测网络状态,正常就执行后续,不正常就终止或停止服务。
zgke 2009-04-29
  • 打赏
  • 举报
回复
第1个 如果你不要在onstart 停止服务启动是线程等待服务启动完成后 再停止服务把.
第2个 可能是权限不的问题.取不到注册表的值把.服务里没写过注册表.
roy_lo 2009-04-29
  • 打赏
  • 举报
回复
因为在启动的时候会连接到我服务器进行检测,如果网络中断,需要停止服务。
所以需要在启动中,检测到网络连接不正常,终止服务。
startray 2009-04-29
  • 打赏
  • 举报
回复
在启动里停止?
启动就是启动
停止就是停止
为啥要在启动里停止呢?

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧