2012-07-17 27 views

回答

1

EWL服务给你一个简单的编程模型,只有三个地方你可以把你的逻辑:Init,CleanUpTick方法。除了决定如何在这些方法之间划分逻辑之外,不需要考虑。除了这三种方法之外,也没有灵活性,所以如果您的问题不能很好地适应此模型,请不要使用EWL服务。

要将现有的解决方案EWL内创建一个EWL服务:

  1. 添加一个Windows服务项目,以您的解决方案。将其命名为“Windows Service”或其他任何东西。将其设置为使用EWL NuGet包,就像解决方案中的其他项目一样。
  2. 在库/配置/ General.xml,添加这样的部分<WebApplications>下方:

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

  4. 在服务项目中显示隐藏的文件,并添加生成的代码/ ISU.cs。
  5. 添加的Program.cs文件到项目中,包含这个类:

    internal partial class Program { 
        static partial void initGlobalLogic(ref SystemLogic globalLogic) { 
        globalLogic = new GlobalLogic(); 
        } 
    } 
    
  6. 添加骆驼套管-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目录下的文件中做任何你需要的操作。

+0

如果我目前没有Library/Configuration/General.xml,这是我使用EWL的解决方案中的第一件事,我可以只使用WindowsServices部分吗?我是否需要设置与服务无关的其他任何EWL内容以使Update Dependent Logic正常工作? – 2012-07-18 14:02:27

+0

我不认为你需要一个web项目,但你可能确实需要一个带有配置文件夹的库项目。在内部配置中,您可能需要'Development.xml','General.xml'和'Installations/Development/Standard.xml'。 – 2012-07-18 17:11:20

+0

@GregSmalter:另外,这些XML文件的模式将在下一个EWL版本发布后联机。 – 2012-07-18 17:21:14