频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

承载和使用WCF服务(8)

作者: Chris Peiris/Dennis Mulder 出处:Msdn 2008-03-27 11:31    砖    好    评论   进入论坛
阅读提示:本文讨论Windows Communication Foundation (WCF)承载方案和WCF服务的使用。传统的ASMX Web服务通常仅由Microsoft Internet信息服务(IIS)承载。在Microsoft .NET Framework 3.0中,WCF服务的承载方案得到了极大的增强。我们将讨论如何将承载模型扩展为包括Windows服务和自承载方案。此外,我们还将详细探讨可用于WCF服务的IIS承载(版本5.1、6.0和7.0)和Windows激活服务 (WAS) 承载方案。

站点绑定到特定方案、网络地址和端口组合。IIS 不仅支持 HTTP,而且依据版本还支持 FTP、NNTP 和 SMTP。可以在相同站点下和在相同方案、网络和端口组合下运行多个应用程序。应用程序的典型 URI 是 http://localhost/MyApplication。虚拟目录只是映射到站点网络空间的文件夹,它可以是文件系统中的其他某处。这样,就可以使应用程序的实际内容或代码与作为相同站点组成部分的其他应用程序分隔开来。

在 IIS 6.0 中,Microsoft 对 IIS 进程模型做了一些重要更改。IIS 进程模型被拆分成可以由站点和应用程序共享的应用程序池,在这里,每个应用程序都运行在它自己的应用程序域中。“应用程序池”是称为 W3wp.exe 的单独 Windows 工作进程,并且只在它需要启动时才会启动。换句话说,IIS 带有应用程序激活模型,它允许 IIS 在它收到与应用程序池绑定的特定应用程序的请求时启动该应用程序池。这样,IIS 就能在一个服务器上承载数千个应用程序,而不必一直运行数千个进程。IIS 的激活体系结构在服务世界中是有趣的模型,本章的“Windows 激活服务”节将对此进行介绍。

图 5-9 显示在 HTTP 协议堆栈底部的 IIS 6.0 核心体系结构以及在其顶部的至少四个不同进程。

图 5-9:IIS 6.0 核心体系结构

◆Lsass.exe: 负责 IIS 的安全功能:实现 Windows 身份验证和安全套接字层 (SSL)。

◆Inetinfo.exe: 承载非 HTTP 服务和 IIS Admin 服务(包括元数据库)的进程。

◆SvcHost.exe: 可以承载操作系统服务的进程;在使用 IIS 的情况下,它承载 Web (HTTP) 服务。

◆W3wp.exe: 工作进程。IIS 可以有多个 W3wp.exe 进程,每个应用程序池一个。若要支持在单独进程中拆分一个应用程序的 Web 园方案,则有多个相同工作进程的实例。这可以提供额外的可伸缩性和性能优势。

注意:我们要在这里描述 IIS 6.0 体系结构,因为它是发布 WCF 之前最广泛使用的 IIS 版本。此外,WCF 支持 IIS 6.0,并且该模型与使用 IIS 7.0 和 Windows 激活服务时选择的实现非常类似,本章后面将对此进行介绍。IIS 5.1 和 IIS 6.0 之间的主要差异是站点和应用程序池的数量受到限制。IIS 5.1 只支持绑定到一个应用程序池的一个站点。

在 IIS 中承载 WCF 服务

若要在 IIS 中承载 WCF 服务,需要有一个扩展名为 .svc 的新物理文件。该文件将服务与其实现相关联,并且是 IIS 自动创建 ServiceHost 的手段。IIS 将接管服务与 ServiceHost 之间的交互,不必再由您自己实例化和启动 ServiceHost。.svc 文件的第一行包含一条夹在 ASP.NET <% Page %>指令内的指令,用于告诉承载环境此文件指向哪个服务。然后,服务代码可以驻留在内嵌代码行内(如列表 5-3 所示)、在注册于 GAC 的单独程序集中、在驻留于应用程序的 Bin 文件夹内的程序集中、或者在驻留于应用程序的 App_Code 文件夹下的 C# 文件中。最常见方案是在配置文件中定义端点。在 IIS 中,必须在 Web.config 文件中定义端点,下一节将对此进行解释。

列表 5-3 显示一个基于前面的 TradeService 服务的示例 .svc 文件。它有内嵌于代码行内的服务代码。列表 5-4 显示一个示例 .svc 文件,其中,代码驻留于 App_Code 文件夹内。

列表 5-3:包含内嵌代码的 ExchangeServiceInline.svc 文件

<%@ServiceHost Language="C#"
Service="QuickReturns.StockTrading.ExchangeService.TradeServiceInline"
%>

using System;
using System.Collections;
using System.ServiceModel;
using QuickReturns.StockTrading.ExchangeService.Contracts;
using QuickReturns.StockTrading.ExchangeService.DataContracts;

namespace QuickReturns.StockTrading.ExchangeService
{
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single,
IncludeExceptionDetailInFaults=true)]
public class TradeServiceInline : ITradeService
{
public Quote GetQuote(string ticker)
{
...
}

public void PublishQuote(Quote quote)
{
...
}
}
}


共18页: 上一页 [1] [2] [3] [4] [5] [6] [7] 8 [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] 下一页
【内容导航】
 第 1 页:简介  第 2 页:了解 .NET 应用程序域
 第 3 页:承载环境特征  第 4 页:在 Windows 服务中进行承载
 第 5 页:操作步骤  第 6 页:使用 Internet 信息服务进行承载
 第 7 页:在 IIS 中承载 WCF 服务  第 8 页:在 IIS 中配置 WCF 服务
 第 9 页:在 IIS 中访问 ServiceHost  第 10 页:ASP.NET 兼容性模型
 第 11 页:Windows XP 和 IIS 5.1  第 12 页:在 IIS 7.0 上进行承载
 第 13 页:操作步骤  第 14 页:Windows 激活服务
 第 15 页:承载方案  第 16 页:使用 Visual Studio 2005
 第 17 页:命令行实现
关于 WCF  承载  服务
专题
WCF开发基础
Windows Home Server 家用服务器专题
服务器维护与应用基础
服务器基础知识入门
垃圾邮件新对策:远程定制托管服务
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看71792次)
·UML类图详解 (查看64803次)
·UML统一建模语言 (查看35276次)
·C#技术开发指南 (查看34101次)
·C++是垃圾语言?! (查看32582次)
·Java编程开发手册 (1196个砖)
·Java基础教程 (429个砖)
·C#技术开发指南 (309个砖)
·.NET开发手册 (240个砖)
·PB开发教程 (223个砖)
·Java编程开发手册 (654个好)
·Java基础教程 (574个好)
·.NET开发手册 (271个好)
·PB开发教程 (212个好)
·Delphi开发技术手册 (190个好)
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。