【发布时间】:2012-09-08 05:21:06
【问题描述】:
我知道 EWL 支持服务,但我不确定它们有什么不同或我必须采取哪些步骤来创建服务。
另外,是否可以以与传统服务相同的方式手动部署 EWL 服务,还是必须使用部署实用程序?
【问题讨论】:
标签: c# windows-services enterprise-web-library
我知道 EWL 支持服务,但我不确定它们有什么不同或我必须采取哪些步骤来创建服务。
另外,是否可以以与传统服务相同的方式手动部署 EWL 服务,还是必须使用部署实用程序?
【问题讨论】:
标签: c# windows-services enterprise-web-library
EWL 服务为您提供了一个简单的编程模型,只有三个地方可以放置您的逻辑:Init、CleanUp 和 Tick 方法。除了决定如何在这些方法之间划分你的逻辑之外,不需要思考。除了这三种方法之外,也没有任何灵活性,因此如果您的问题不完全适合此模型,请不要使用 EWL 服务。
在现有 EWL 解决方案中创建 EWL 服务:
在 Library/Configuration/General.xml 中,在<WebApplications> 下方添加这样的部分:
<WindowsServices>
<Service>
<Name>YOUR-SERVICE-PROJECT-NAME</Name>
<NamespaceAndAssemblyName>YOUR-SERVICE-PROJECT-NAMESPACE</NamespaceAndAssemblyName>
</Service>
</WindowsServices>
更新依赖逻辑。
在项目中添加一个 Program.cs 文件,包含这个类:
internal partial class Program {
static partial void initGlobalLogic( ref SystemLogic globalLogic ) {
globalLogic = new GlobalLogic();
}
}
在项目中添加一个 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() {}
}
删除项目中所有看似不必要的样板文件。
我相信您可以手动安装 EWL 服务。只需构建并使用 bin 目录中的文件执行任何您需要的操作。
【讨论】:
Development.xml、General.xml 和Installations/Development/Standard.xml。