1

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

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

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

4

2 回答 2

2

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

对于 32 位平台:

在此处输入图像描述

对于 64 位平台:

在此处输入图像描述

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

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

对于 32 位平台:

在此处输入图像描述

对于 64 位平台:

在此处输入图像描述

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

于 2018-01-05T09:21:08.487 回答
1

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

为 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 构建的管道部署的,并且缺少 Platform 参数。将其设置为 x64 后,Webjob 现在可以成功运行 x64 位。

在此处输入图像描述

于 2021-03-26T02:59:27.247 回答