c# - 创建 Windows 服务来运行 Visual Studio 解决方案

标签 c# forms windows-services

好吧,我以前从未做过 Windows 服务,如果这个问题看起来有点愚蠢,我很抱歉。我目前有一个 Windows 窗体应用程序,其中有一些执行某些操作的按钮。单击按钮后,这些操作当前将使用我设置的计时器无限运行。

我想将其设置为 Windows 服务,但不知道如何操作。有很多创建服务作为另一个项目的示例,但这就是我想要的吗?或者我可以将其包含在我现有的项目中吗?我将如何采取实际上必须单击这些按钮一次并将其放置在服务中的过程?

最佳答案

我强烈建议创建一个控制台应用程序来运行您的服务,然后使用 TopShelf。

这将使您能够通过启动 Exe 轻松运行应用程序进行调试,并且您可以将所有调试消息写入控制台窗口,但它内置了代码,允许您将 Exe 安装为 Windows 服务,并且将使用相同的代码。

您可以阅读有关 Topshelf 的更多信息:http://docs.topshelf-project.com/en/latest/overview/index.html .

  1. 创建一个新的控制台应用程序项目。
  2. 添加顶架 Nuget package
  3. http://docs.topshelf-project.com/en/latest/configuration/quickstart.html 处有一个简单程序以及如何连接它的好示例。
  4. 完成后,您可以从 Visual Studio 内部或构建的可执行文件中将应用程序作为控制台应用启动和调试。

当您对程序按预期工作感到满意时,您可以将可执行文件安装为 Windows 服务

  1. 将构建的代码复制到您想要永久运行服务的位置。例如 C:\MyService
  2. 打开命令提示符(具有管理权限)
  3. 将目录更改为您的服务目录(例如 C:\MyService)
  4. 使用以下命令安装您的服务。 MyService.exe 安装

您可以通过多个选项来安装服务,您可以在此处找到这些选项。 http://docs.topshelf-project.com/en/latest/overview/commandline.html

关于c# - 创建 Windows 服务来运行 Visual Studio 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29896998/

相关文章:

c# - System.Net.WebClient 异常缓慢

design-patterns - 故障转移服务的挑战和最佳实践

C# - 将 HTML 源代码解析为 XML

c# - Entity Framework 6 导航集合为空而不是空

php - 将二维数组传递给 PHP 的 HTML 表单(我认为是特例)

javascript - 在 JavaScript 中传递通用函数作为参数?

c# - 从另一个服务停止服务

c# - 从 Windows 服务创建交互式提升进程并显示给登录用户

C# 'System.StackOverflowException' 在 InitializeComponent()

c# - 使用变量名访问子对象