Azure Autoscaling在本地运行,但在部署时不运行

时间:2013-01-21 22:54:29

标签: deployment azure enterprise-library autoscaling

问题

我正在尝试部署一个可以自动缩放几个目标站点的辅助角色。我能够在本地运行自动调节器并且它可以工作(我在我的机器上安装了证书)。但是,一旦我将其作为云应用程序部署到Azure,它就不会自动缩放。 (但是,worker角色正在运行,因为我可以看到我的非自动缩放过程在同一个辅助角色中工作。)

我尝试了什么

我已按照Deploying the Autoscaling Application Block说明操作。

  • 将“CN = Windows Azure工具”证书添加到目标订阅的管理证书中。
  • 将“CN = Windows Azure Tools”证书添加到自动扩展应用程序的证书中。
  • 在工作人员角色Worker role certificates中指定我的证书的位置

  • 在我的服务存储中指定了用于配置自动缩放的证书的位置

    Service store configuration

    我错过了什么?

    由于

  • 2 个答案:

    答案 0 :(得分:2)

    要在Azure中运行,我会尝试将Store Location设置为LocalMachine。

    如果您已按照部署自动扩展应用程序块中的所有步骤进行操作,则应在角色中部署具有私钥(.pfx)的证书。您可以RDP到服务器以验证证书是否已安装(以及位置)。

    您还可以尝试按Autoscaling Application Block Logging启用日志记录,以查看是否有任何消息。

    答案 1 :(得分:2)

    Tuzo是对的 - cert应该在LocalMachine中,但这还不够。见this SO post。基本上,在OS Family 2中,WaWorkerHost在Role初始化过程中生成的临时帐户(具有GUID名称)下运行,该帐户具有访问证书私钥的权限;在OS系列3中,WaWorkerHost在“NETWORK SERVICE”帐户下运行,此帐户没有私钥访问权限。

    现在的最佳选择(MS Azure团队解决下一个SDK中的问题)是使用提升的权限运行角色 - 编辑ServiceDefinition.csdef:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="blah" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
      <WorkerRole name="blah" vmsize="Small">
        <Runtime executionContext="elevated" />
        ...      
       </WorkerRole>
    </ServiceDefinition>