作为Windows Azure的托管服务被设计和开发的应用程序由这两部分组成:

1,托管代码

2,XML配置文件

托管代码对应不同的角色

XML文件对应不同的配置设置

我们可以看一下下面这张图,它详细说明了在Windows Azure应用程序中主要包含哪些组件:

注意:这是Windows Azure SDK中的一张图。

接下来,我们会一个一个地仔细分析上面这张图中提到的每一个组件。

首先是角色

有三种类型的角色

1,Web角色

2,Worker角色

3,VM角色

Web角色

1,这是一个为IIS定制的角色。

2,如果我们选择了这种类型的角色,IIS会被自动地配置好。

3,这个角色主要用于获取输入。

4,这个角色已经针对HTTP请求做好相应的配置了。

5,它包含被IIS支持的Web站点或其他的代码。

6,它会包含一些ASPX页面,或者,它也可能会包含一些WCF服务。被IIS支持的任何应用程序都可以作为Web角色来使用。

7,任何一个应用程序都可以作为Web角色来使用,只要它支持HTTP协议就可以了。

8,当我们在Windows Azure中把WCF服务作为Web角色来使用的时候,我们需要确保在WCF服务中使用的绑定是“basicHttpBinding”。把WCF服务作为Web角色来使用,我们不能 使用其他的绑定。

Windows Azure SDK 1.3中Web角色的改进

1,支持IIS的全部功能。

2,Web应用程序和站点完全运行在IIS之下。

3,Web角色用和IIS完全一样的方式来使用应用程序域。

最大的改进是现在我们可以让把多个站点或应用程序看成一个Web角色了。

在创建Azure项目的时候,我们可以选择我们想为这个应用程序添加的Web角色的类型。已经安装的模板包括:

1,ASP.Net Web Role

2,ASP.Net MVC Web Role

3,WCF Service Web Role

4,CGI Web Role

在刚刚创建好的Windows Azure项目中,你可以看到,向导会为你自动地创建两种类型的配置文件。

在ServiceConfiguration.cscfg文件中,我们可以指定Web角色的实例数:

Worker角色

它主要用于后台任务。值得注意的是,Worker角色不支持IIS。所以,它可以处理任何类型的应用程序,包括非托管代码。Worker角色不用直接和用户进行交互,所以,当遇到那些异步的,需要很长时间才能完成的处理任务的时候,它就可以大显身手了。

Worker角色的主要用途

1,用于那些无需用户进行等候的任务。

2,用于那些异步的任务。

3,用于运行非HTTP服务(例如:TCP服务)。

4,托管不需要用户进行输入的应用程序。

Worker角色和Web角色之间的区别

让我们理解一下Web角色和Worker角色之间的区别:

1,Web角色是一个Web应用程序,它可以获取来自于用户的HTTP输入,它被IIS支持。Worker角色不支持IIS。这是Web角色和Worker角色之间的主要区别。

2,Web角色面向用户界面,而Worker角色获取来自于Web角色的输入,主要用于异步执行批量的操作。

3,在Web角色中,线程是通过IIS来管理的,而在Worker角色中,线程是开发者或者我们自己来管理的。

4,在Worker角色中,我们必须提供Run方法来启动这个进程。

5,Web角色和Worker角色的安全参数并不相同。

6,对于IIS和网络服务来说,默认是支持基于证书的ACL(Access Control List)的,而在Worker角色中,必须由开发者自己来管理。

在csdef文件中,Worker角色的定义如下,在下面这个配置文件中,这个Worker角色的名字是“WokerRole1”:

<WorkerRole name="WorkerRole11">

<Imports>

<import modulename="Diagnostics" />

</Imports>

</WorkerRole>

Worker角色类主要包含两个方法:

VM角色

第三种类型的角色是VM角色。这是非常特殊的一种角色,它主要用于虚拟机中的操作系统升级。

Web角色和Worker角色运行在一个虚拟机上,而VM角色是一个虚拟机,它可以全面控制虚拟机上的各种操作。

我们可以使用VM角色来控制虚拟机中的操作系统和升级,而操作系统是VM角色的实例。这个角色最适合用来迁移要作为托管服务在Windows Azure中运行的应用程序。

一个VM角色的定义如下所示:

<VirtualMachineRole name="MachineRole" vmsize="Medium">

<Imports>

<Import moduleName="RemoteAccess" />

<Import moduleName="RemoteForwarder" />

</Imports>

</VirtualMachineRole>

原文名:Windows Azure for Developers Task 3: Understanding Windows Azure Application 作者:Dhananjay Kumar

Azure开发者任务之三:理解Azure应用程序(上)的更多相关文章

  1. 面向中国 Azure 开发者发布开源解决方案指南

     发布于 2014-05-23 作者 刘 天栋 Azure 是一个开放.灵活的云平台,可支持大量且不断增长的开源应用程序.框架和语言.微软及微软开放技术通过与全球及中国本地的开源社区不懈地合作,将 ...

  2. 理解 Azure 平台中虚拟机的计算能力

    虚拟化平台至今已经发展了十多年的时间.其中 Hyper-V 技术现在也已经是第三代版本.用户对于虚拟化计算也越来越接受,这也有了公有云发展的基础.然而在很多时候,用户在使用基于 Hyper-V 的 A ...

  3. Microsoft Azure News(2) 在Microsoft Azure上运行SAP应用程序

    <Windows Azure Platform 系列文章目录> 2014年6月27日消息,在 Microsoft Azure 上提供 SAP Business Suite 软件.All-I ...

  4. Azure开发者任务之七:在Azure托管服务中托管WCF服务角色

    在一个托管服务中托管一个WCF服务角色和托管一个ASP.Net Web Role基本类似. 在上一篇文章中,我们学习了如何使用WCF Service Web Role. 在本文中,我会对上一篇文章进行 ...

  5. 在 Azure Web 应用中创建 .NET 应用程序

    本快速入门帮助你在数分钟内将你的第一个 ASP.NET Web 应用部署到 Azure 应用服务.完成本教程后,你将能够在云中启动并运行一个简单的 Web 应用.在本教程中完成的所有操作均符合1 元试 ...

  6. 用集装箱装ASP。带有Docker和Azure Kubernetes服务的NET Core应用程序

    介绍 曾经有一个单一软件应用程序的时代,整个应用程序被打包并部署在作为单个进程运行的单个服务器上.我们都知道,在这个模型中,单点故障可能会导致整个应用程序崩溃. 微服务体系结构的发展是为了解决单片应用 ...

  7. Azure开发者任务之一:解决Azure Storage Emulator初始化失败

    初学Windows Azure: 我打算开始学习Windows Azure.我安装了Azure SDK,然后在“Cloud”标签下选择Windows Azure模板,创建了一个项目,然后又创建了一个W ...

  8. SQL Azure (14) 将云端SQL Azure中的数据库备份到本地SQL Server

    <Windows Azure Platform 系列文章目录> 注意: 1.只有SQL Server 2012 CU4及以上版本才支持本章内容 2.当你的数据库文件很大时,建议优化以下内容 ...

  9. Azure Queue Storage 基本用法 -- Azure Storage 之 Queue

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure File Storage 基 ...

随机推荐

  1. mac osx 系统 brew install hadoop 安装指南

    mac osx 系统 brew  install hadoop 安装指南   brew install hadoop 配置 core-site.xml:配置hdfs文件地址(记得chmod 对应文件夹 ...

  2. 我常用的Mac快捷键

    1. 最小化当前窗口 command m 2. 在不同应用间切换 command tab 3. 在同一应用的不同窗口间切换 command ` 4. 在浏览器同一窗口的不同标签间切换 ctrl tab ...

  3. android google 统计导致的文件冲突

    android studio 加入google 统计 1. buildscript { repositories { jcenter() } dependencies { classpath 'com ...

  4. Tomcat抛出异常:ClientAbortException: java.net.SocketException: Connection

    在做一个小网站的时候,写了一个通过servlet实现文件下载功能的页面.当我点击超级练级,弹出下载对话框,点击保存正常下载,不会出现任何问题,当我我点击取消,服务器端就出现如下提示: ClientAb ...

  5. 面向.Net程序员的后端性能优化实战

    最近2个月没做什么新项目 完全是对于旧的系统进行性能优化 避免超时 死锁 数据处理能力不够等常见的性能问题 这里不从架构方面出发 毕竟动大手脚成本比较高 那么我们以实例为前提 从细节开始 优化角度 一 ...

  6. ArcGIS Geodatabase版本控制机制的学习总结

    本文是最近内部的一个学习的自我整理,只有关键信息,如果需要详细了解,请参阅ArcGIS帮助文档: http://resources.arcgis.com/zh-cn/help/main/10.1/in ...

  7. Filter之——GZIP全站压缩

    GZIP压缩:将压缩后的文本文件,发送给浏览器,减少流量. 一.进行gzip压缩条件: 1.请求头:Accept-Encoding : gzip  告诉服务器,该浏览器支持gzip压缩. 2.响应头: ...

  8. ODAC(V9.5.15) 学习笔记(十五)数据离线模式

    数据离线模式(Disconnected Mode)是指数据库只有在需要的时候才连接,数据的处理放在客户端内存缓冲区中完成.这样做最大的好处是减少了网络资源依赖,对数据库服务器的资源开销和压力也减少.如 ...

  9. java之内部类(InnerClass)----非静态内部类、静态内部类、局部内部类、匿名内部类

    提起java内裤类(innerClass)很多人不太熟悉,实际上类似的概念在c++里面也有,那就是嵌套类(Nested Class),关于这俩者的区别,在下文中会有对比.内部类从表面上看,就是在类中定 ...

  10. Shooting Algorithm

    Shooting算法是Wenjiang提出的一种优化Lasso(L1 Regularization)和Bridge Regression的算法, 本文以Lasso为例. 对于线性回归问题$\mathb ...