本章是对Windows Azure Platform (十三)开发一个简单的Hello World 的补充和说明,让大家对于Visual Studio 2010 Cloud Application有一个更加具体和全面的了解。

1.Emulator

Windows Azure允许您在Windows Azure Emulator(模拟器)来模拟程序在本地运行,这样您不必实际部署应用程序到微软的数据中心就可以对其进行测试。

Emulator分成两种:Compute Emulator(计算模拟器)和Storage Emulator(存储模拟器)。

计算模拟就是在本机模拟多个计算节点(Instance Count)在运行某一个Web站点的执行情况。计算节点越多在本地执行所占用的内存就越高,也就越消耗本地的资源;最后部署在微软的云计算数据中心执行的速度就越快,当然费用也就越高。

我们知道,Windows Azure对非关系型数据的访问分为三种:分别是Blob, Table和Queue(Windows Azure里不存在对于本地盘符的访问,如访问Azure计算节点的C盘D盘等,这个概念一定要清楚)。存储模拟也能模拟在本机对于这三种非关系型数据的访问。

在启动Azure Project后,我们可以通过Show Compute Emulator UI和Show Storage Emulator UI来查看模拟器的输出内容,如下图

azure云服务器分成多个服务器_azure云服务器分成多个服务器

 

2.SQL Server Express

首先大家必须了解,Windows Azure Emulator是基于SQL Server Express的,也就是说您必须安装SQL Server Express才能进行Azure项目的开发。如果在开发过程中关闭了SQL Server Express服务,则本地的Windows Azure Emulator则无法正常启动和执行。

 

3.让我们在Visual Studio 2010里打开一个Windows Azure Project

azure云服务器分成多个服务器_Azure_02

让我们从下往下看仔细看这个工程。

最上面HelloWindowsAzure的project表示这是一个Windows Azure的项目,他有2个角色(Roles文件夹),一个是WebRole(ASP.NET Web工程,名字叫做MyWebRole)和WorkerRole。

ServiceConfiguration.Cloud.cscfg

概念上类似于我们WebApplication里的Web.config工程文件。其中Cloud表示如果我部署到了云端服务器之后读的是这个配置文件。

ServiceConfiguration.Local.cscfg

其中Local表示如果我在本地使用debug调试,读取的是这个配置文件。

这样区分配置文件的好处是方便我们在本机调试和部署到云端能够使用不同的配置文件来进行开发和部署。

 

4.我们展开HelloWindowsAzure工程-->Roles-->MyWebRole-->右键-->属性

azure云服务器分成多个服务器_Azure_03

会弹出一个新的窗口

azure云服务器分成多个服务器_Windows_04

Configuration标签页

Service Configuration能让我们在ServiceConfiguration.Cloud.cscfg和ServiceConfiguration.Local.cscfg之间切换

 

.NET trust level:

用来配置运行在Windows Azure平台应用程序锁使用的信任级别。默认选择为Full trust,即完全信任模式;也可以选择部分信任的模式(windows Azure partial trust)。一般情况下都会选择完全信任模式,即允许应用程序访问Native COde。而在部分信任模式下,Windows Azure Role只能够访问到很有限的系统资源。

Full trust能让客户使用其他.NET功能,比如Windows Communication Foundation(WCF)

Windows Azure partial trust的执行权限没有Full Trust高。

 

Instance指的是计算单元的个数,表示同时有多少台计算单元同时做同一处理和计算。

VM Size我之前已经说过,有5种不同的类型,相对应的硬件水平也不同:

VM大小

CPU

RAM

本地存储大小

I/O优先权

Extra Small(XS)

1 * 1.0GHz(共享CPU)

768MB

20GB


Small

1 * 1.6GHz

1.75GB

225GB


Medium

2 * 1.6GHz

3.5GB

490GB


Large

4 * 1.6GHz

7GB

1000GB


Extra Large(XL)

8 * 1.6GHz

14GB

2040GB


例如:我把Instance改成3,VM Size改成Small。则表示这个工程部署到Windows Azure平台上,实际的运行能力等同于3台CPU为单核1.6G,内存为1.75G的物理主机联合起来的计算能力。

 

5.我们在上一界面里切换到Settings窗体,然后点击"Add Setting",则会默认新增Setting1一个属性,并且类型可以选择"String"和"Connect String"。如果Type是"Connect String"则Value会出现显示为"..."的按钮。

azure云服务器分成多个服务器_Azure_05

这里的区别在于:

"String"表示你输入的是字符类型,可以输入任意你想要的字符串。

"Connection String"表示你输入的是连接字符串,连接字符串的内容和格式长度微软是有严格的限制的。如果您在Connection String里随便输入无效的字符和数字,系统会提示错误。

azure云服务器分成多个服务器_配置文件_06

这两个值可以看做是Azure的配置文件(类似于Web.Config),并且可以使用Azure SDK的API来读取。

点击显示为"..."的按钮,会弹出一个新的窗口

azure云服务器分成多个服务器_Azure_07

上图有两个单选框

"Use the Windows Azure Storage emulator"我们一般在使用本地模拟器(Azure Emulator)调试时选择。

"Enter Storage account credentials"这个内容表示使用Windows Azure云计算数据中心提供的证书(证书包含了证书名和密码)。我会在Azure Storage这章详细介绍。

 

 

CSCFG配置页面

我们在查看CSCFG配置页面的时候,可以看到下图的内容

azure云服务器分成多个服务器_azure云服务器分成多个服务器_08

 

有关osFamily和osVersion的信息,可以参考MSDN文档:

https://msdn.microsoft.com/en-us/library/azure/ee758710.aspx

 

含义:

 

osFamily

表示PaaS Cloud Service的版本是Windows Server 2012 R2

osVersion

当设置为*的时候,表示一旦有新的Guest OS,PaaS OS会自动将操作系统升级

schemaVersion

表示Visual Studio和SDK的兼容模式

 

 

后续的Endpoints、Local Storage、Certificates、Virtual Network我会在后面几章做详细的介绍。