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

 

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

 

 


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

 

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

 

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

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

现在打开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_*.cssx  WorkerRole_*.cssx文件,生成你的workerweb的角色目录。

 

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

 

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

 

  

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

 

 


原文链接: http://blog.csdn.net/azurechina/article/details/5597258

你可能感兴趣的:(深入解析Windows Azure 服务程序包(转))