2

问题

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

我试过的

我已按照部署自动缩放应用程序块说明进行操作。

  • 在目标订阅的管理证书中添加了“CN=Windows Azure Tools”证书。
  • 在自动缩放应用程序的证书中添加了“CN=Windows Azure 工具”证书。
  • 指定我的证书在工作角色中的位置工人角色证书

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

    服务存储配置

    我错过了什么?

    谢谢

  • 4

    2 回答 2

    2

    Tuzo 是对的 - 证书应该在 LocalMachine 中,但这还不够。请参阅此 SO 帖子。基本上,在 OS Family 2 中,WaWorkerHost 运行在角色初始化过程生成的临时帐户(具有 GUID 名称)下,该帐户有权访问证书私钥;在 OS Family 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>
    
    于 2013-01-22T21:16:32.590 回答
    2

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

    如果您已执行部署自动缩放应用程序块中的所有步骤,则应在角色中部署带有私钥 (.pfx) 的证书。您可以 RDP 进入服务器以验证证书是否已安装(和位置)。

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

    于 2013-01-22T02:14:42.923 回答