深入解析Windows Azure 服务程序包(转)

本文解释了Windows Azure服务程序包的概念,包括其两种形式及其在本地和云环境中的使用方式。

公告:本博客为微软云计算中文博客的镜像博客。部分文章因为博客兼容性问题,会影响阅读体验。如遇此情况,请访问原博客


什么是Windows Azure服务程序包?它包含了云服务的服务定义,还有对于每一个角色的内容信息与二进制文件。

它有两种形式。第一种,它是一个以csx为拓展名的目录结构。当你参看云服务项目的输出目录时,你会看到下图:

高亮显示的CloudService6.csx文件便是服务程序包的目录结构版本,服务定义文件便被放在此处。

而服务配置文件是与服务程序包分开保存的,以便能够独立的对其更新。如:更新设定值,增删每一个角色的实例。

在Development Fabric上运行的便是云服务项目输出的服务程序包的目录结构版本。

如果你查看WebRoleWorkerRole目录,你会看到用来运行你的角色的内容信息与二进制文件。

服务程序包的另一种形式是单文件版本(文件拓展名为cspkg),当你在云服务项目上右击,并选择“Publish…”来发布云服务时,它便会被创建。

这个是你需要上传至Windows Azure云平台来运行你的服务的文件(与服务配置文件一起)。

在云服务项目的输出目录下的发布文件夹内,你会发现单文件压缩包与服务配置文件。

当你发布云服务时,VS会自动打开此目录。

理解服务程序包的2种形式非常有意义,这能让你知道去哪里查看哪些文件被本地或云上的Fabric打包并执行

单文件的服务程序包会被压缩(zipped)与加密,所以你无法浏览,除非你在环境变量中设置成不加密的打包方式。

注意:不加密的打包方式只用于诊断调试目的,不能用于产品发布。另外,此方法只出于内部使用的意图,并无任何服务支持,且可能被随时更改。

Visual Studio已关闭的情况下,创建一个新的环境变量:_CSPACK_FORCE_NOENCRYPT_,将其值设为true。如下图:

你可以通过控制面板->系统和安全->系统->左侧的高级系统设置->系统属性对话框中的高级选项卡->环境变量来更改环境变量。

现在打开Visual Studio,打开一个云服务项目,右击发布(“Publish…”),你会在输出窗口看见如下信息:

C:\Program Files\MSBuild\Microsoft\Cloud Service\v1.0\Microsoft.CloudService.targets(0,0): warning : CloudServices44 : Forcing creation of unencrypted package.

现在你可以解压单文件服务程序包了,重命名为*.zip,然后解压(unzip)。

在第一个目录内,你可以解压WebRole_*.cssxWorkerRole_*.cssx文件,生成你的workerweb的角色目录。

值得一提的是,尽管我重申过应该只部署服务程序包的加密版本,但是你也可以在Windows Azure平台上同部署加密版本一样部署未加密的版本。

希望这篇文章能帮助你诊断与调试,我们正在考虑为此开发一些便捷的工具。

本文翻译自:http://blogs.msdn.com/jnak/archive/2009/04/16/digging-in-to-the-windows-azure-service-package.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值