【问题标题】:How do I create and deploy a Windows service in EWL?如何在 EWL 中创建和部署 Windows 服务?
【发布时间】:2012-09-08 05:21:06
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案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 目录中的文件执行任何您需要的操作。

    【讨论】:

    • 如果我目前没有 Library/Configuration/General.xml 并且这是我使用 EWL 的解决方案中的第一件事,我可以只使用 WindowsServices 部分吗?我是否需要设置任何其他与服务无关的 EWL 内容才能使更新依赖逻辑正常工作?
    • 我认为您不需要有一个 Web 项目,但您可能确实需要一个包含配置文件夹的库项目。在配置中,您可能需要Development.xmlGeneral.xmlInstallations/Development/Standard.xml
    • @GregSmalter:此外,这些 XML 文件的架构将在下一个 EWL 版本之后上线。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多