FAQ TBarCode в веб-приложениях
Ошибка неверного формата
Ошибка неверного формата
После развёртывания веб-приложения вы получаете:
- Could not load file or assembly TECIT.TBarCode or one of its dependencies. An attempt was made to load a program with an incorrect format.
Возможная причина этой проблемы в том, что вы добавили 32-битный вариант сборки TBarCode в своё приложение (как правило, потому что сервер разработки Visual Studio работает в 32-битном режиме). Но ваш веб-сервер работает на 64-битной системе, а пул приложений настроен на отказ от поддержки 32-бит. В результате приложение пытается загрузить 64-битную библиотеку, но находит вместо неё 32-битную версию, что приводит к ошибке неверного формата.
Есть два варианта решения:
- Вы можете переключиться на 32-бит, изменив свойство Enable 32 Bit в дополнительных настройках пула приложений IIS. Рекомендуется делать это только если для вашего веб-приложения настроен выделенный пул приложений именно для этого приложения и нет требования запускать его как 64-битное.
- Либо удалите все относящиеся к TBarCode библиотеки из папки app/bin вашего приложения, установите 64-битный MSI-инсталлятор TBarCode x64 SDK на веб-сервере, а затем выполните либо перезагрузку, либо команду iisreset в консоли администратора (все приложения будут перезапущены). При таком подходе IIS автоматически разрешит либо 64-битный, либо 32-битный вариант из GAC (Global Assembly Cache). В GAC наш инсталлятор хранит копии библиотеки/сборки TBarCode в обоих форматах — 32 и 64 бит.
Если на вашем веб-сервере размещены и другие приложения, выполняйте сброс в выделенном окне обслуживания или когда никто больше не обращается к серверу.