【问题标题】:How to forbid C# service from start under LocalSystem account?如何在 LocalSystem 帐户下禁止 C# 服务启动?
【发布时间】:2011-12-14 11:56:58
【问题描述】:

我需要我的服务只能在用户帐户下运行。我应该怎么做才能获得呢? 我试图检查 Environment.UserName 来检查这一点。但是看起来编译器不会将这部分代码编译为可执行文件。 感谢您的快速响应!

【问题讨论】:

  • 编译器编译所有代码,除了没有可能被优化掉的副作用。属性访问不包括在内 - 代码肯定在那里。你可以检查 Environment.UserName,你在里面找什么?
  • 是的,这个方法肯定解决了问题。我的错误是我没有使用不区分大小写的字符串比较。需要在 OnStart() 方法中创建启动应用程序(服务)的用户名的检查。如果失败 - 从函数返回,否则 - 继续。

标签: c# service localhost


【解决方案1】:

如果您正在寻找一次性修复:

安装服务后,转到控制面板->管理工具->服务和组件

您需要在此处配置服务的属性。

右键单击您的服务,然后选择属性 - 转到登录选项卡,您可以在其中设置服务将在哪个用户下运行。

祝你好运!

编辑:

对于永久修复 - 仅当您使用 VS 安装项目来安装您的服务:

  • 双击安装程序的 .CS 文件,会出现一个设计窗口
  • 现在你应该看到一个实例,如果你的服务(我认为默认是 ServiceProcessInstaller)
  • 右键单击它,选择属性
  • 在 Misc 下,根据需要设置帐户。

【讨论】:

  • 谢谢,但正确的答案是检查 OnStart() 中的 Environment.UserName。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
  • 1970-01-01
  • 2011-01-01
  • 1970-01-01
  • 2014-04-07
相关资源
最近更新 更多