BadImageFormatException 0x8007000B только в Windows Server 2012 R2 - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть приложение ASP.NET 3.5, которое включает 32-битную DLL. Он отлично работает (и работает годами) в Windows XP, 7 и 10. Я добавляю поддержку Windows 2012, 2012 R2 и 2016. Он работает в 2016 году, но не работает в 2012 R2.

При первом обращении к DLL возникает следующая ошибка:

BadImageFormatException: была предпринята попытка загрузить программу с неверный формат. (Исключение из HRESULT: 0x8007000B)

Один и тот же скрипт сборки и установки используется для всех протестированных ОС. Каждая ОС находится на ВМ на одной машине, поэтому аппаратное обеспечение для всех ОС идентично. Для каждой ОС:

  • ОС полностью обновлена.
  • vcredist 9.0 (x86) устанавливается как часть установки.
  • В IIS DefaulatAppPool включены 32-разрядные приложения.

Я перепробовал все предложения в сообщениях по этой проблеме, но ничего не работает. Есть идеи?

1 Ответ

1 голос
/ 17 апреля 2019

Дважды проверьте в диспетчере задач, что ваш процесс W3WP.exe для приложения выполняется 32-разрядным и что на самом деле пул приложений по умолчанию пытается загрузить DLL. Это сообщение об ошибке почти наверняка означает, что 64-битный процесс пытается загрузить 32-битную DLL.

...