【问题标题】:Run c# form app as service [closed]将c#表单应用程序作为服务运行[关闭]
【发布时间】:2017-12-15 01:59:00
【问题描述】:

我用 c# 开发了一个只有“开始”和“停止”的 GUI 表单,例如:

private void btnStart_Click(object sender, EventArgs e)
{
 //Some code here
}

private void btnStop_Click(object sender, EventArgs e)
{
//Some code here
}

我需要将此应用程序作为服务运行。

如何将我的 GUI 应用程序作为服务运行?请帮忙

【问题讨论】:

  • GUI 项目不作为 Windows 服务运行。
  • 您想将它作为 Windows 服务运行吗?您在 services.msc 中看到的那个?然后你需要创建一个 Windows 服务应用程序-c-sharpcorner.com/UploadFile/b7531b/…
  • @gunr2171 WCF 服务不是 Windows 服务。
  • @gunr2171 如何将我的应用“转换”为服务应用?
  • @Error404 请说明WCF服务还是Windows服务?

标签: c#


【解决方案1】:

最好的方式是将非UI类和逻辑放在自己的程序集(或程序集)中,然后有一个winform项目和一个windows服务项目引用 em> 那个程序集。

技术上您可以从服务程序集中调用 winform 代码,但这会很麻烦,而且调试也更加困难。

【讨论】:

  • 你知道如何正确停止服务吗?我的意思是,我应该在停止按钮中添加什么,例如 protected override void OnStop(){ Service.Exit}
  • 服务中没有 UI 组件,所以没有停止按钮。如果您希望服务停止,您可以通过服务控制台 (start --> run --> services.msc) 或运行 sc 命令(在命令窗口中键入 sc /? 了解详细信息)停止它。如果您在发出停止命令时有需要做的事情,请将该代码放入 OnStop 事件中。
【解决方案2】:

注册为服务的程序无法显示GUI的原因是由于规范更改称为会话0隔离。

请参考这篇文章改一下程序。
Service starting a process wont show GUI C#

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 2019-03-13
    相关资源
    最近更新 更多