Итак, у меня есть веб-приложение, которому нужен клиент Oracle 19c (4.122.19.1) из-за определенных изменений синтаксиса, в то время как наш сервер Dev IIS имеет более старый клиент 4.121.2.0.
В любом случае, я поместил все, что я слышал, как надлежащие библиотеки dll поддержки в каталог Bin приложения, которые, согласно всем моим исследованиям, следующие: oci.dll ociw32.dll Oracle.ManagedDataAccess.dll Oracle.Web.dll orannzsbb19 .dll oraocci19.dll oraocci19d.dll oraociei19.dll oraons.dll OraOps19.dll
Это отлично работает с моего ПК в Visual Studio. Когда я развертываю сервер Dev IIS (с пулом приложений, работающим в режиме «Включить 32-разрядную версию», поскольку на моем ПК работает IISExpress в 32-разрядной версии), возникают различные ошибки подключения к Oracle.
Теперь в Process Explorer на своем ПК я смотрю на IISExpress и вижу, что он загружает все вышеперечисленные библиотеки DLL, хотя и из GAC, потому что этот клиент установлен локально. Тем не менее, на сервере Dev, Process Explorer, в моем процессе W3WP.exe я вижу только Oracle.ManagedDataAccess.dll и Oracle.Web.dll, но не поддерживающие библиотеки DLL. Я совершенно уверен, что проблема в том, что они отсутствуют, особенно OraOps19.dll.
Я использовал вещь DLLPath в web.config, это не имеет значения. Мне всегда говорили, что Asp.Net всегда сначала пытается загрузиться из BIN. Тем не менее, здесь я считаю, что это, по крайней мере, частично игнорируется - как на моем ПК, который идет прямо к GAC, так и с сервера Dev IIS, который получает надлежащие .Web и .ManagedDataAccess из Bin, но больше ничего.
Как я могу заставить это забыть о Gac и заставить его найти все, что ему нужно, с точки зрения Oracle, в корзине? Спасибо