Я столкнулся с этой проблемой. Я искал всевозможные решения для этого, но безрезультатно, наконец, решил спросить здесь.
Веб-приложение представляет собой .net 4.0, развернутое с помощью IIS на промежуточном сервере, до недавнего времени оно работало нормально. Он отлично работает на сервере производства и разработки.
Платформа веб-приложения — «Любой ЦП», встроенная в машину x64, развернутая на машине x64. Но все эталонные сборки используют 32-битную, а dll приложения компилируется в 32-битную. Мы устанавливаем «Включить 32-разрядные приложения» в пуле приложений IIS.
Теперь я перекомпилировал приложение и все его сборки на платформу x86 и развернул на промежуточном сервере. Но опять появляется та же ошибка.
Я использовал fusion для регистрации, чтобы увидеть, может ли System.data.dll быть загружена правильно, как показано ниже.
Я думаю, что это как-то связано с сервером, так как веб-сайт работает нормально. Недавно на промежуточном сервере также были внесены исправления безопасности.