【问题标题】:Run Program At Windows StartUp在 Windows 启动时运行程序
【发布时间】:2011-09-20 00:46:58
【问题描述】:

如果有人可以向我解释如何让我的程序在启动时运行,我正在徘徊? 我的程序是一个 C# WCF,带有一个必须在服务器上运行的小型 WPF UI,我需要确保该程序将在服务器重新启动或其他任何原因时启动。

我环顾四周,看来我必须使用注册表项,但我不熟悉如何使用注册表项,有人可以向我解释一下如何使用它。我正在使用 VS2010 创建安装程序,我想在安装时设置注册表项:)

附:我不希望应用程序成为 Windows 服务,我不能只将它放在用户的启动文件夹中(如果服务器重新启动并且没有人登录怎么办?)

【问题讨论】:

  • 这正是 Windows 服务的用途。所以它引出了一个问题……你为什么不想使用 Windows 服务?
  • @KirkWoll Windows 服务和 UI 不是一个很好的组合。将 UI exe 放在启动注册表位置之一可能是 GUI 的最佳选择。
  • @kenny,我不知道。我同意你在 UI 部分的观点,但是如果 WCF 服务不托管在 IIS 中,则应该托管在 Windows 服务中。

标签: c# wcf startup registrykey


【解决方案1】:

添加一些东西来运行:

http://www.geekpedia.com/tutorial151_Run-the-application-at-Windows-startup.html

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

rkApp.SetValue("MyApp", Application.ExecutablePath.ToString());

更新:再考虑一下,这可能对您没有帮助,因为您的方法似乎存在根本缺陷。仍然需要有人登录才能运行 UI。这个解决方案怎么样:

将服务推回 Windows 服务(正如其他人所建议的那样)。对于 WPF UI 部分,将其与承载 WCF 服务的 exe 分离到它自己的项目中。只需公开另一个服务端点合同,UI 可以使用它来管理/监控服务。

这为能够从不同的机器监控服务器打开了大门。此外,您不必担心会有多人同时登录服务器(在许多环境中很可能出现这种情况)并启动服务主机的多个实例。

【讨论】:

    猜你喜欢
    • 2011-08-24
    • 2015-09-16
    • 1970-01-01
    • 2011-08-22
    • 2017-04-09
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多