基于Hosted Web Core 方式部署Web Role

基于Hosted Web Core 方式部署Web Role

在介绍Windows Azure 平台部署Web Role 的原理之前,首先来看一个Windows Azure 项目,它只有一个ASP.NET Web Role

打开ServiceDefinition.csdef 文件,如下所示。

<?xml version="1.0" encoding="utf-8"?>

<ServiceDefinition name="FullIisDemo" xmlns="http://schemas.microsoft.com

/ServiceHosting/2008/10/ServiceDefinition">

<WebRole name="WebRole1">

<Endpoints>

<InputEndpoint name="Endpoint1" protocol="http" port="80" />

</Endpoints>

<Imports>

<Import moduleName="Diagnostics" />

<Import moduleName="RemoteAccess" />

<Import moduleName="RemoteForwarder" />

</Imports>

</WebRole>

</ServiceDefinition>

和我们之前看到的定义文件不同,这个文件里面没有Site 节点,而是直接定义了一个指向80 端口的HTTP Input Endpoint 作为对外的终结点地址。将这个项目部署到Windows Azure 平台并加入远程桌面支持。

部署完毕后,通过远程桌面连接到这个Role Instance 虚拟机上面。进入IIS 管理界面,如图8-41 所示,在IIS 中只有默认站点而没有这个Web Role 所对应的站点。而且这个默认站点指向的本地文件路径并不是Web Role 的所在位置。那么Web Role 被部署到哪里了?

 

 

打开虚拟机的任务管理器,可以看到有一个名为WaWebHost.exe 的进程,如图8-42 所示。这个Web Role 就被部署在了这个进程之中,而非IIS。那么这个WaWebHost.exe 又是什么呢?

 

 

 

 

这个例子中的Windows Azure 项目,它的ServiceDefinition.csdef 文件格式是基于SDK 1.2版本编写的,在配置文件中不包含Site 节点,所以当我们部署这个Windows Azure 项目的时候,Windows Azure 平台将会使用旧的模式部署Web Role。在这种模式下,Web Role 不会被部署到虚拟机的IIS 中,而是会被部署到一个名为Hosted Web Core 的组件里面,即如图8-42 所示的WaWebHost.exe 进程。

Hosted Web Core 正如其名称一样,是一个可以寄宿Web 站点的组件。通过它,Web 站点可以被部署在IIS 之外的一个进程中。Hosted Web Core 可以完成绝大多数IIS 的功能,所以一般来说,部署在Hosted Web Core 的网站和部署在IIS 中的没有任何区别。但也正是由于Hosted WebCore 只是IIS 的一个功能子集,因此无法完全实现IIS,包括多站点部署、虚拟目录、虚拟应用程序以及WASWindows Activation Service)。这就是为什么开发人员在Windows Azure SDK 1.3之前无法在一个Hosted Service 中实现多个Web Role 部署。

但是Hosted Web Core 部署的方式也会为程序带来一些便利。首先是对于Windows Azure 平台本身,Hosted Web Core 由于更加简单独立所以更便于Controller Fabric 控制。另外,对于WebRole 来说,WebRole.cs 中的代码和网站代码都是运行在同一个应用程序域的下面。也就是说对于RoleEntry OnStartRun OnEnd 等代码都是和网站代码运行在一起的。这样一来,网站代码中和WebRole.cs 的代码相互调用等操作就会非常方便。图8-43 展示了使用Hosted Web Core模式部署Web Role 的状态。

 

 

本文节选自《实战Windows Azure:微软云计算平台技术详解 》一书

本书详细信息:

http://www.cnblogs.com/broadview/archive/2011/10/10/2205557.html

posted @ 2011-10-26 16:23  博文视点(北京)官方博客  阅读(142)  评论(0编辑  收藏  举报