zoukankan      html  css  js  c++  java
  • 基于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

  • 相关阅读:
    web.xml配置文件
    数组去重问题
    Mysql优化
    点赞功能
    IDEA的一些使用小技巧
    Maven
    AJAX
    HTTP响应头拆分/CRLF注入详解
    对寄存器ESP和EBP的一些理解
    汇编调用指令的执行过程
  • 原文地址:https://www.cnblogs.com/broadview/p/2225360.html
Copyright © 2011-2022 走看看