如何在EWL中创建和部署Windows服务?

时间:2012-07-17 17:13:26

标签: c# windows-services enterprise-web-library

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

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

1 个答案:

答案 0 :(得分: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. 删除项目中看似不必要的任何样板文件。

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