【发布时间】:2011-02-13 08:43:48
【问题描述】:
我正在尝试创建将托管在 Windows 服务中的 WCF 应用程序
我在 Visual Web Developer 中有两个选项
1) 新网站 -> WCF 服务
2) 新建项目 -> WCF 服务应用程序
哪个适合创建可以托管在 Windows 服务中的服务?是否有任何教程解释使用上述任何方法在 Windows 服务中托管?
谢谢
李乔
【问题讨论】:
标签: wcf
我正在尝试创建将托管在 Windows 服务中的 WCF 应用程序
我在 Visual Web Developer 中有两个选项
1) 新网站 -> WCF 服务
2) 新建项目 -> WCF 服务应用程序
哪个适合创建可以托管在 Windows 服务中的服务?是否有任何教程解释使用上述任何方法在 Windows 服务中托管?
谢谢
李乔
【问题讨论】:
标签: wcf
李乔, This page in the MSDN help 向您展示了如何从控制台应用程序开始创建 WCF 服务。以此为起点,我能够完成所有工作。
【讨论】:
至于创建您的服务 - 如果您已经计划使用 NT 服务作为您的主机,只需使用类库,然后向其中添加 WCF 服务。给出的两个选项都不会为您提供适合在 NT 服务中使用的东西。
关于托管,请参阅:
【讨论】:
在大多数情况下,您实际上想要做的是创建两个项目;首先是 WCF 服务库(位于 WCF 模板下),然后是 Windows 服务(位于 Windows 模板下),然后从您的 Windows 服务引用 WCF 服务库。
WCF 服务库包含所有特定于 WCF 的类 - 合同、服务等 - 然后您只需在 Windows 服务中创建一个ServiceHost。最后一部分只需要很少的代码:
public class MyService : ServiceBase // Windows Service class
{
private ServiceHost host;
protected override void OnStart(string[] args)
{
host = new ServiceHost(typeof(MyWcfLibrary.MyWcfService));
host.Open();
}
protected override void OnStop()
{
host.Close();
}
}
还有更详细的教程here。
【讨论】:
System.ServiceModel和System.Runtime.Serialization)。