运用Windows Azure Cloud Services的Startup Tasks设定地区与语言

为了延展性的考虑,Windows Azure Cloud Services 并不会保存本机硬盘的状态与设定,也因此所有对于系统环境的设定与软件环境安装都必须借助 Startup Tasks,让虚拟机启动时自动执行些工作。欲使用 Windows Azure Cloud Services Startup Task 必须在 Windows Azure Service Definition Schema (.csdef File). 内做相关的宣告。http://msdn.microsoft.com/en-us/library/windowsazure/gg456327.aspx 内有详细的描述,例如我希望虚拟机一启动时便以系统管理员身分执行一个名为 global.cmd 的批处理文件,并等待此批处理文件执行完毕之后方可继续执行,您可以在 ServiceDefinition.csdef 内加上下面 XML 宣告:

< ServiceDefinition name="MyService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
< WebRole name="WebRole1">
< Startup>
<Task commandLine="global.cmd" executionContext="elevated" taskType="simple">
</Task>
</Startup>
</WebRole>
< /ServiceDefinition>

但如何在 Starup Tasks 内设定地区与语言 (Regional and Language Options) 为台湾呢? 这件事情比想象中麻烦些。目前 (2012 年 10 月) Windows Azure Cloud Services 内虚拟机的 Windows Azure Guest OS 操作系统是 Windows Server 2008 或 Windows Server 2008 R2,Windows Server 2008 支援 PowerShell 1.0,而 Windows Server 2008 R2 则支援 PowerShell 2.0。这两个版本的 Powershell 之内都没有支持地区与语言的设定,因此要取代手动在控制面板内设定地区与语言,需要采用其他的方法。

在 Windows XP 时代,即可透过命并列来进行地区与语言的设定,此方法最后的更新的文件是在 Windows Vista 时的 http://msdn.microsoft.com/en-ie/goglobal/bb964650%28en-us%29.aspx,例如我们可以将欲设定的地区与语言描述于 locale.xml 中,并在命令行内透过控制台 control.exe 加以执行与设定

control.exe intl.cpl,,/f:"locale.xml"

要将格式与地区都设定为台湾,可以提供以下的 locale.xml

<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">

<!--User List-->

<gs:UserList>

<gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="true"/>

</gs:UserList>

<!--User Locale, change to Taiwan-->

<gs:UserLocale>

<gs:Locale Name="zh-TW" SetAsCurrent="true"/>

</gs:UserLocale>

<!--location, change to Taiwan ,GeoID of Taiwna is 237 -->

<gs:LocationPreferences>

<gs:GeoID Value="237"/>

</gs:LocationPreferences>

< /gs:GlobalizationServices>

XML 内的 CopySettingsToSystemAcct="true" 设定十分重要,因为即便将目前的系统管理员账号区域设定修改成台湾,但不代表启动 IIS 的系统账号 NT AUTHORITY\NETWORK SERVICE 会将区域设定修改成台湾,必须将 CopySettingsToSystemAcct="true" 方会将主要系统账号做相同的设定。

可以在 Windows Server 2008 R2 命令行模式中顺利执行 control.exe intl.cpl,,/f:"locale.xml" 并不代表事情已经完成,我们必须将这个命令加入进 Windows Azure Cloud Services Startup Task 之中。由于这个区域设定的动作会干扰到虚拟机启动过程,因此我将 taskType="background” 改为在虚拟机启动的同时在背景同时执行区域设定的批处理文件 global.cmd。此外,这个 Startup Task 也会干扰开发环境的仿真器,让开发环境无法顺利将程序布署到 Windows Azure Compute Emulator 仿真器,因此ServiceDefinition.csdef 内加上下面 XML 宣告:

<WebRole name="WebRole1" vmsize="Small">

<Startup>
< Task commandLine="global.cmd" executionContext="elevated" taskType="background">
<Environment>
< Variable name="EMULATED">
< RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
</Variable>
</Environment>
</Task>
</Startup>

</WebRole>

时间: 2024-09-20 12:21:28

运用Windows Azure Cloud Services的Startup Tasks设定地区与语言的相关文章

Windows Azure Mobile Services增加了对Android的支持

我们的Mobile Services使开发人员很容易地开发丰富多彩的移动应用程序.使用Mobile Services ,开发人员不仅能够连接其应用程序到 Windows Azure 上易扩展又安全的后端,还可以在云上存储数据. 验证用户身份并发送推送通知.当 Scott Guthrie 宣布Windows Azure Mobile Services的initial public preview时,他承诺将为开发 Windows Store, Windows Phone 8, iOS 和 Andr

微软公布Windows Azure Media Services云计算

今天我们公布了Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure Media Services,这个新的服务集即将出现在Windows Azure中.Windows Azure Media Services简化了创建.管理以及将媒体交付到几乎所有的设备上,包括Microsoft Xbox.Windows Phone handsets 和 Windows PCs,甚至是非微软平台例如智能电视.机顶盒.MacOS.

微软推出移动端的云服务Windows Azure Mobile Services

昨天微软对外发布了云计算平台Windows Azure的新增模块Windows Azure Mobile Services(下文简之为Azure移动服务平台).通过这个服务平台,开发者可以给自己的Windows 8应用程序添加云服务后台:将数据存储到云计算服务器上.验证用户和向客户端发送 推送通知都变得更为容易. 不过需要提醒的是,Azure移动服务平台尚未支持Windows Phone.iOS和Android移动平台. 和其他云计算后台服务解决方案一样,Azure移动服务平台可以使得开发者更加

Windows Azure Media Services和2012年伦敦奥运会

今年早些时候,我们宣布了Windows Azure Media Services.Windows Azure Media Services是一种基于云计算的 PaaS(Platformas a Service )  解决方案,它使您能够高效地构建并为客户提供媒体解决方案.它提供了很多随时可用的服务,其中包括快速接收. 编码. 格式转换. 存储. 内容保护. 和流 (直播和点播)视频.Windows Azure Media Services可用于为任何设备或客户端-包括 HTML5. Silver

将PHP应用发布为Windows Azure Cloud service中

Website使用很方便,但有的时候,我们希望获得更多的灵活性,比如需要特别的PHP插件.需要不同的PHP版本,或者需要运行其他进程,甚至希望登录到目标虚拟机上去.这时,可以采用Cloud service来运行PHP应用.Cloud service是一组被http://www.aliyun.com/zixun/aggregation/13357.html">Azure管理的虚拟机,上面运行了windows操作系统,并且加载了IIS和PHP运行环境,可以支持ASP和PHP的运行.PHP发布到

Windows Azure Storage BLOB储存机制概述

Windows Azure 提供具备可高度延展的储存机制,来储存结构化与非结构化数据,此一机制称为 Windows Azure Storage. Windows Azure Storage 以 REST 为基础的 Web Service 提供开发接口.这意味着任何平台下的任何程序语言,只要能够支持 HTTP 通讯协议,即可藉由此一开发接口存取 Windows Azure Storage.当然位处于相同数据中心内的 Windows Azure 应用程序存取 Windows Azure Storag

运用FTP上传档案至Windows Azure Web Sites

Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure Web Sites 也是 Windows Azure 2012 Spring 920.html">Release 中一项新的预览功能,对于单纯开发网页应用程序搭配数据库的应用,Windows Azure Web Sites 已经足以应付.Windows Azure Web Sites 可以单纯上传修改某一个网页中所用到的档案,而无须如 Wind

Windows Azure中部署PHP应用程序

这篇文章介绍各种部署网站上Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure 的方式,不过由于虚拟机服务(Windows Azure Virtual Machines)的部署方式是完全自己设定的,所以这里主要介绍的是网站服务(Windows Azure Websites)的各种部署方式以及如何用 Windows Azure SDK 的工具来进行部署应用程序至云端服务(Windows Azure Cloud Se

Windows Azure:为什么我要使用云?

作为Windows Azure 团队的一员,我总被企业 IT 客户问到两个问题.那些还没习惯云的客户会问"为什么我要使用云?"那些已经有了云的会问"当实现一个云平台的时候应该信任哪一家呢?"好在这两个问题只需简单答案就能回答. 第一 -  为什么企业IT改变他们以往做业务的方式而采用云 -  答案源于历史.在过去,企业的 IT将技术带给其雇员,并努力开发稳定可预测的计算环境.但近几年这一切都已经改变,我们这些有企业IT经验的人知道应对这些变化要承受的巨大压力. 现在