1

我知道 EWL 支持服务,但我不确定它们有什么不同或我必须采取哪些步骤来创建服务。

此外,是否可以以与传统服务相同的方式手动部署 EWL 服务,还是必须使用部署实用程序?

4

1 回答 1

1

EWL 服务为您提供了一个简单的编程模型,只有三个地方可以放置您的逻辑:InitCleanUpTick方法。除了决定如何在这些方法之间划分你的逻辑之外,不需要思考。除了这三种方法之外,也没有任何灵活性,因此如果您的问题不完全适合此模型,请不要使用 EWL 服务。

要在现有 EWL 解决方案中创建 EWL 服务:

  1. 将 Windows 服务项目添加到您的解决方案。将其命名为“Windows 服务”或其他任何名称。将其设置为使用 EWL NuGet 包,就像解决方案中的其他项目一样。
  2. 在 Library/Configuration/General.xml 中,在下面添加如下部分<WebApplications>

    <WindowsServices>
      <Service>
        <Name>YOUR-SERVICE-PROJECT-NAME</Name>
        <NamespaceAndAssemblyName>YOUR-SERVICE-PROJECT-NAMESPACE</NamespaceAndAssemblyName>
      </Service>
    </WindowsServices>
    
  3. 更新依赖逻辑。

  4. 显示服务项目中的隐藏文件,并添加 Generated Code/ISU.cs。
  5. 将 Program.cs 文件添加到项目中,其中包含此类:

    internal partial class Program {
      static partial void initGlobalLogic( ref SystemLogic globalLogic ) {
        globalLogic = new GlobalLogic();
      }
    }
    
  6. 将 CAMEL-CASED-SERVICE-PROJECT-NAME.cs 文件添加到项目中,其中包含类似于以下内容的类:

    internal partial class CAMEL-CASED-SERVICE-PROJECT-NAME {
      string WindowsServiceBase.Description { get { return "..."; } }
      void WindowsServiceBase.Init() {}
      void WindowsServiceBase.CleanUp() {}
      void WindowsServiceBase.Tick() {}
    }
    
  7. 删除项目中似乎不必要的所有样板文件。

我相信您可以手动安装 EWL 服务。只需构建并使用 bin 目录中的文件执行任何您需要的操作。

于 2012-07-18T13:50:56.893 回答