我目前正在为非洲市场开发一个ASP.NET MVC 4应用程序,并希望使用以下链接http://msdn.microsoft.com/en-gb/library/system.globalization.cultureandregioninfobuilder.register(v=vs.110).aspx中详述的步骤注册自定义文化。我的大多数目标国家都不在预先安装的文化中,所以我觉得我需要注册这些文化。问题是,我的控制台应用程序进行注册将需要管理员previlidges来完成文化注册。我假设windows azure不允许开发人员管理云服务环境。
问题:在没有管理员优势的情况下在Windows Azure中注册自定义文化的最佳方法是什么。显然,有一种方法可以使用cultureandregioninfobuilder.compile方法在Framework 2.0上执行此操作,但这不是受支持的方法。有更好的解决方案吗?不希望为每种文化维护不同的项目解决方案,因此我可以支持不同的语言。
提前致谢。
答案 0 :(得分:1)
您可以创建一个使用提升的权限运行的启动任务,还可以在有限的上下文中运行您的应用程序。您的服务配置文件应如下所示:
<ServiceDefinition name="MyCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
<WebRole name="MyWebRole" vmsize="Small">
<Runtime executionContext="limited">
</Runtime>
<Startup>
<Task executionContext="elevated" commandLine="scripts\SetupCulture.cmd" taskType="simple">
<Environment>
<Variable name="CULTURE">
<RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='Culture']/@value" />
</Variable>
</Environment>
</Task>
</Startup>
...
</WebRole>
</ServiceDefinition>
请注意,您可以在服务配置文件中指定所需的区域性。最后,您可以使用.cmd文件中的环境变量“CULTURE”将其用作执行该作业的.NET可执行文件的参数。
答案 1 :(得分:1)
我使用了David描述的方法 - 使用提升的管理员权限运行脚本。
为了创建自定义文化,我使用了这篇文章How to: Save Custom Cultures Without Administrative Privileges。
代码仍然需要管理员权限,即使它表示相反,但它在按上述方式执行时也有效。
证明可以在Azure中使用Sitecore项目。