【问题标题】:Windows Azure Cloud best practice for localizationWindows Azure 云本地化最佳实践
【发布时间】:2012-08-08 10:16:38
【问题描述】:

我有一个基于 MVC 云的项目,目前支持瑞典和法国两种文化

现在取决于我的客户,我希望根据他的文化创建资源文件

现在的问题是我不想重新部署到 Azure 云,还想动态添加我的资源文件

是否可以使用远程桌面将特定文化的 Dll 直接复制到 Azure

我试过这是我的本地机器,但它失败了,但是当我编译我的解决方案时,添加到 Bin 文件夹的新 Dll 适用于新文化

什么是基于云的本地化的最佳方法,其中数据库命中是一个主要问题,因为它代价高昂

【问题讨论】:

    标签: c#-4.0 azure localization globalization


    【解决方案1】:

    作为 MikeWo 解决方案的替代方案,您可以考虑创建自定义 ResourceProviderFactoryan example on MSDN 向您展示了如何创建可以加载外部程序集的示例 ExternalResourceProviderFactory。

    您可以修改此类并让它从 blob 存储中下载程序集。创建自定义 ResourceProviderFactory 后,您只需将其添加到您的 web.config 中,无需使用启动任务:

    <globalization uiCulture="auto" culture="auto"
         resourceProviderFactoryType="CustomResourceProviders.ExternalResourceProviderFactory, CustomResourceProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f201d8942d9dbbb1" />
    

    【讨论】:

      【解决方案2】:

      我建议将附属程序集存储在 BLOB 存储中,并让您的应用程序使用后台任务定期从特定 BLOB 容器中获取所有程序集。您可以唤醒 Web 角色的后台进程并查看 BLOB 容器,以及查看它的 bin 文件夹中有哪些附属程序集。如果它在 BLOB 容器中找到新的程序集(或更新的程序集),它可以将其拉下。

      我已经很久没有使用附属程序集了,所以我不确定您是否可以更新正在使用的程序集,或者如果它们立即开始工作,您是否可以将新程序集放入垃圾箱中。如果这种“热插拔”方法不起作用,那么您至少可以在启动任务中使用类似的逻辑从 BLOB 存储中获取程序集,然后只需对服务配置执行更新(处理 RoleEnvrionmentChanging 事件) .请注意,这不会是完全重新部署。

      【讨论】:

        【解决方案3】:

        请勿使用 RDP 更改您的解决方案。从长远来看,它不会起作用。(如果内部出现任何问题,Azure 有权使用它拥有的 cspkg 恢复应用程序,在这种情况下,您通过 RDP 所做的更改将不会反映) 您可以尝试将资源文件放在 Azure blob 中,并在需要时选择它。

        【讨论】:

          猜你喜欢
          • 2010-10-11
          • 2015-12-10
          • 2011-04-07
          • 1970-01-01
          • 2010-12-17
          • 1970-01-01
          • 2012-02-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多