CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > WinSystem子站 > 评论分析

承载和使用 WCF 服务

作者: Chris Peiris、Dennis Mulder,  出处:微软, 责任编辑: 韩博颖, 
2008-05-21 09:04
  本文讨论 Windows Communication Foundation (WCF) 承载方案和 WCF 服务的使用。传统的 ASMX Web 服务通常仅由 Microsoft Internet 信息服务 (IIS) 承载。

      在 Windows 服务中进行承载

  在 Windows 服务中承载 WCF 服务是一种合理的选择。不应将 Windows 服务与 WCF 服务混为一谈。它们都使用“服务”一词,但却具有不同的含义。Windows 服务是由操作系统管理的进程。Windows 提供了服务控制管理器,用于控制操作系统上安装的服务。Windows 通过服务来支持诸如网络、USB、远程访问、消息队列等操作系统功能。您可以使用 Visual Studio 2005,利用 Windows 服务项目模板(如图 5-2 所示)创建 Windows 服务。

  Visual Studio 2005 Windows 服务项目模板

  图 5-2. Visual Studio 2005 Windows 服务项目模板

  Windows 服务项目模板会生成一个项目,其中包含两个文件:service1.cs 文件和 program.cs 文件。其中 service1.cs 文件包含服务实现,而 program.cs 文件则用于实例化并实质上承载 Windows 服务。要在 Windows 服务内部承载 WCF 服务,只需执行 Windows 服务的 Start() 方法和 Stop() 方法,如列表 5-2 所示。由于启动 Windows 服务的范例与启动 WCF ServiceHost 内的服务相似,因此最后需要将 WCF 服务的生存期与 Windows 服务的生存期相连。

  列表 5-2. 承载 WCF ServiceHost 的 Windows 服务

  

      using System;
  using System.ServiceModel;
  using System.ServiceProcess;
  using QuickReturns.StockTrading.ExchangeService;
  namespace QuickReturns.StockTrading.ExchangeService.Hosts
  {
  public partial class ExchangeWindowsService : ServiceBase
  {
  ServiceHost host;
  public ExchangeWindowsService()
  {
  InitializeComponent();
  }
  protected override void OnStart(string[] args)
  {
  Type serviceType = typeof(TradeService);
  host = new ServiceHost(serviceType);
  host.Open();
  }
  protected override void OnStop()
  {
  if(host != null)
  host.Close();
  }
  }
  }
  由此可见,编写用于承载 WCF 服务的 Windows 服务非常容易,而且与本章前面的自承载方案相比,它还有几个好处。另一方面,编写承载 WCF 服务的 Windows 服务也有一些您必须了解的缺点。
共26页。 9 1 2 3 4 5 6 7 8 9 10 11 ... :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

该文章的读者还阅读了

天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i