【问题标题】:Azure WebJob wrong platform targetAzure WebJob 错误的平台目标
【发布时间】:2018-01-03 18:26:28
【问题描述】:

我有一个要发布到应用服务的 Azure WebJob。我遇到的问题是我想以 x86 平台为目标,但是当我发布 WebJob 并附加到应用服务时,它总是列为 x64。

我将所有解决方案配置的平台目标设置为 x86。只有一个解决方案平台。我什至在发布 scipt 中将RuntimeIdentifier 设置为“win7-x86”。我不知道我可能会错过什么。

在应用程序设置中将应用服务设置为在 32 位平台上运行。

【问题讨论】:

    标签: azure azure-webjobs platform webjob


    【解决方案1】:

    AFAIK,您的 Web 应用程序的默认工作进程是 32-bit。为了检查您的网络应用程序的当前环境,您可以利用KUDU

    对于 32 位平台:

    对于 64 位平台:

    您可以访问https://{your-app-name}.scm.azurewebsites.net/Env.cshtml的详细信息。

    对于您的网络作业,您可以使用流程资源管理器,如下所示:

    对于 32 位平台:

    对于 64 位平台:

    一般来说,我建议你删除现有的 webjob 并重新部署它,然后使用 kudu 检查环境以缩小此问题。

    【讨论】:

      【解决方案2】:

      没有直接的方法可以从 Azure 门户或 KUDU 控制台找出 Webjob 进程位数。要确定它,您需要从 KUDU 手动收集内存转储,此博客涵盖了它http://jsandersblog.azurewebsites.net/2017/02/02/how-to-get-a-full-memory-dump-in-azure-app-services/

      为 Webjob 进程收集内存转储后,您需要在 Windbg 中打开它并运行以下命令:

      这是检查进程位数的命令:

      0:000> !peb
      NUMBER_OF_PROCESSORS=4
      PROCESSOR_ARCHITECTURE=x86
      WEBSITE_COMPUTE_MODE=Dedicated
      WEBSITE_SKU=PremiumV2
      
      0:000> .effmach
      Effective machine: x86 compatible (x86)
      

      或者,您可以在 Visual Studio 中打开(只需拖放)转储以查看以下信息:

      因此,Webjob 被认为是以 x86 位运行的。

      在我的情况下,我想运行它 x64 位,这个 WebJob 是通过 VSTS 构建的管道部署的,并且缺少平台参数。将其设置为 x64 后,Webjob 现在可以成功运行 x64 位。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-24
        • 1970-01-01
        • 2018-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多