Не удалось загрузить файл или сборку "Oracle.DataAccess" 64-разрядный ODP.NET
2 ZedBee [2013-04-24 11:04:00]
Я использую ODP.NET в моем проекте asp.net, чтобы приложение могло поговорить с oracle 11 g Express на сервере Windows 2008 (32 бит). В то время как на машине разработки у меня была Windows 7 (32 бит). Я установил Windows 8 (64 бит) на машину разработки и попытался запустить приложение с visual studio 2012, он дал ошибку "Не удалось загрузить файл или сборку" Oracle.DataAccess ". После небольшого поиска я понял, что мне нужно установить ODP.NET (64 бит), чтобы использовать его на 64-битной машине, поэтому я удалил 32-битную версию и установил 64-разрядную ODP.NET. Убрали ссылку на старый Oracle.DataAccess, но все еще столкнулись с той же проблемой. Я что-то пропустил?
oracle asp.net odp.net
3 ответа
2 SPDeveloper [2014-09-01 18:32:00]
У меня была такая же проблема, и после некоторых проб и ошибок я обнаружил, что проблема связана с 32-разрядной и 64-разрядной платформой.
- При развертывании 32-битного Oracle.DataAccess.dll вместе с веб-приложением в 64-разрядной среде и ODP.net, установленном поверх сервера, эта ошибка будет возникать.
- Одним из решений является удаление Oracle.DataAccess.dll из папки bin, и правильная ссылка будет автоматически разрешена.
- Второе решение - установить ссылочное свойство CopyToLocal = false для Oracle.DataAccess.dll, и, следовательно, он не будет работать со сборкой при развертывании в IIS, и ошибка не произойдет.
- Третье решение, которое я предпочту, это включить 32-битные приложения для пула приложений, и вы не столкнетесь с этой проблемой снова, независимо от того, присутствует ли файл Oracle.DataAccess.dll в папке bin или нет.
Надеюсь, что это поможет.
0 b_levitt [2013-05-29 00:06:00]
Битность машины не имеет значения - бит-версия приложения для хостинга. Веб-сервер разработки, входящий в состав Visual Studio, составляет 32 бит, поэтому вам необходимо установить 32-разрядную версию odp.net. Вы можете запустить его в IIS вместо этого, если хотите протестировать 64-битную версию. Я устанавливаю оба.
В этом случае я предполагаю, что проблема скорее будет номером версии. Ваше приложение первоначально ссылалось на другую версию, чем та, которую вы установили. Простая вещь - удалить/повторно добавить ссылку на недавно установленную Oracle.DataAccess.dll. Однако тот факт, что вы должны это сделать, указывает на то, что вы устанавливаете полный клиент, а не только ODP.net install. По какой-то причине (кроме универсального установщика oracle, являющегося полным ханком), полный клиент не включает политику издателя (которая перенаправляет ссылку), но установка odp.net делает.
0 Hüseyin Yağlı [2013-07-18 13:50:00]
Чтобы установить ODP.NET, я использую 64-разрядный ODAC
После его установки, чтобы проверить, правильно ли установлена сборка Oracle.DataAccess 64bit, перейдите в папку: c:\Windows\Microsoft.NET\assembly\GAC_64 и проверьте, присутствует ли там папка Oracle.DataAccess.
В папке должна находиться подпапка, содержащая версию используемой вами Oracle.DataAccess dll.
В Visual Studio вы должны добавить ссылку, посмотрев в Assemblies- > Extensions (не используя Browse)
Также проверьте конфигурацию сборки в Visual Studio, чтобы убедиться, что платформа активного решения вашего приложения - 64 бит.
Чтобы запустить ваш сайт, вы должны использовать IIS, поскольку сервер разработки Visual Studio работает только в режиме 32 бит.
В пуле приложений IIS настройте приложение на 64 бит. (Настройки находятся в расширенных настройках)