Azure WebJob неправильная целевая платформа

У меня есть веб-задание Azure, которое я публикую в службе приложений. Проблема, с которой я столкнулся, заключается в том, что я хочу настроить таргетинг на платформу x86, но когда я публикую веб-задание и подключаюсь к службе приложений, оно всегда отображается как x64.

Я установил целевую платформу x86 для всех конфигураций моего решения. Существует только одна платформа решения. У меня даже есть RuntimeIdentifier в сценарии публикации, установленном на «win7-x86». Я понятия не имею, что я мог упустить.

Служба приложений настроена для работы на 32-разрядной платформе в параметрах приложения.


person James B. Nall    schedule 03.01.2018    source источник


Ответы (2)


Насколько я знаю, рабочий процесс по умолчанию для вашего веб-приложения — 32-bit. Чтобы проверить текущую среду вашего веб-приложения, вы можете использовать KUDU.

Для 32-битной платформы:

введите здесь описание изображения

Для 64-битной платформы:

введите здесь описание изображения

Детали, к которым вы можете получить доступ https://{your-app-name}.scm.azurewebsites.net/Env.cshtml.

Для своего веб-задания вы можете использовать обозреватель процессов следующим образом:

Для 32-битной платформы:

введите здесь описание изображения

Для 64-битной платформы:

введите здесь описание изображения

В общем, я бы порекомендовал вам удалить существующее веб-задание и повторно развернуть его, а затем использовать куду для проверки среды, чтобы сузить эту проблему.

person Bruce Chen    schedule 05.01.2018

Не существует прямого способа узнать разрядность процесса Webjob из портала Azure или консоли KUDU. Чтобы определить это, вам нужно будет вручную собрать дамп памяти из KUDU, и этот блог описывает это http://jsandersblog.azurewebsites.net/2017/02/02/how-to-get-a-дампполнойпамятив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-битная версия.

В моем случае я хотел запустить его на 64-разрядной версии, и это веб-задание было развернуто через встроенный конвейер VSTS, и в нем отсутствовал аргумент платформы. После настройки на x64 веб-задание теперь успешно работает с бит x64.

введите здесь описание изображения

person Samir Jain    schedule 26.03.2021