Я столкнулся с очень похожей проблемой.
Мне нужно было использовать старую 32-битную DLL в веб-приложении, которое разрабатывалось на 64-битной машине. Я зарегистрировал 32-битную DLL в папке windows \ sysWOW64, используя версию regsrv32 в этой папке.
Вызовы сторонней DLL работали из модульных тестов в Visual Studio, но не выполнялись веб-приложением, размещенным в IIS на той же машине, с ошибкой 80040154.
Изменение пула приложений на «Включить 32-разрядные приложения» решило проблему.