Это вызвано тем, что вы пытаетесь загрузить двоичную зависимость (один из файлов в папке Bin
), которая является 32-битной, а ваше приложение работает в 64-битном режиме.
В .Net 4 и IIS 7 пулы приложений по умолчанию работают в 64-битном режиме.
Большинство двоичных файлов .Net компилируется с Any CPU
, установленным в свойствах его сборки. Это означает, что они работают в 32- и 64-битном режиме.
Большинство приложений на C ++ и C, написанных на .Net do , требуют специальной компиляции для 32-битной или 64-битной версии. Это означает, что если вы используете неправильную версию развернутой бина вашей зависимости, она не сможет загрузиться.
Эту проблему можно решить, используя одно из следующих:
, если вы хотите сохранить 32-битную ссылку / зависимость:
- Специально настроить приложение IIS для работы в 32-битном режиме.
- В управлении IIS;
- Пул приложений -> Расширенные настройки (справа)
- «Включено 32-битных приложений» установлено в True.
- Перезапустите пул приложений
- Установите обе ваши сборки (32-битные и 64-битные) в GAC. IIS загрузит правильную версию в зависимости от операционной среды (в вашем случае это 64-битная версия).
Если вы просто хотите, чтобы это заработало:
- Замените ваш 32-битный двоичный файл в папке
Bin
на 64-битный. IIS не будет иметь проблем с загрузкой.