2013-03-08 6 views
11

Я создаю приложение ASP.NET с C#, и я хочу подключиться к базе данных oracle.
Я добавил ссылку на Oracle.DataAccess в мое приложение на моем 64-битном компьютере Microsoft Window Server 2008. Я также установил ODAC (Oracle Data Access Component) на моей машине и Oracle.DataAccess.dll также присутствует на этом путиНе удалось загрузить файл или сборку 'Ошибка Oracle.DataAccess

C:\Windows\Microsoft.NET\assembly\GAC_64\Oracle.DataAccess

, но когда я пытаюсь подключиться я столкнуться следующее сообщение об ошибке:

Could not load file or assembly 'Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.

+1

Вы пытались установить 32-битную версию? –

+0

нет, я установил 64-разрядную версию –

+0

@FelipeOriani Что мне делать? На самом деле я использую 64-битную машину. –

ответ

5

Насколько я знаю, сборка Oracle.DataAccess работает только с 32 битами, у меня также есть такая проблема с 64 битами, и она действительно не работает. Моим решением было удалить 64 бит из GAC и установить 32 бит на GAC. Я также удаляю любой DLL-файл в папке bin, чтобы мое приложение находило сборку на GAC.

Нет проблем, если ваша машина и операционная система 64 бит, 32-битная версия будет работать нормально.

UPDATE

Я рекомендую вам взглянуть на Official Oracle ODP.NET, Managed Driver, что это лучший вариант, чем Oracle.DataAccess. Это Managed Driver не нуждается в Oracle Client на машине, и вам просто нужно предоставить TNS в поле DataSource connection string, и он отлично работает для 32 и 64 бит.

+0

x64 Oracle.DataAccess сборка также работает, потому что я использовал на другом, используя только x64, и он работает нормально. Я не могу определить, почему он встречается в моей системе. @felipe Oriani большое спасибо вам, чтобы решить мою проблему. –

+0

Узел Oracle.DataAccess имеет 32-битные и 64-разрядные версии, и оба они работают без проблем. Я использовал обе версии. –

+0

все еще появляется на моей машине. Моя машина тоже 64 бит –

3

Вам необходимо установить как x64, так и x86 версии Oracle, потому что что-то (я думаю, это Visual Studio) использует версию x86 при отладке.

+0

Я опубликовал на IIS. –

1

по существу ту же ошибку

недостающие компоненты установки ODP.NET как на последний пост от меня и другого участника ответа.

Вы еще проверите GAC?

Если вы не видите папки Oracle.xxx,

вы не делаете какого-либо прогресса.

введите правильную версию и бит Oracle.DataAccess.dll в папку application/BIN и сделайте локальную ссылку. Это решает многие проблемы.

+1

Я уверен в правильной версии Oracle.DataAccess.dll. И я попытался поставить ссылку локально, но столкнулся с ошибкой. Не удалось загрузить файл или сборку Oracle.DataAccess или одну из ее зависимостей. Была сделана попытка загрузить программу с неправильным форматом. –

1

Для запуска вашего сайта вы должны использовать IIS, поскольку сервер разработки visual studio работает только в 32-битном режиме.
В пуле приложений IIS настройте приложение на 64 бит. (Настройки находятся в дополнительных настройках)

1

В VS2010 я изменил цель платформы на x64, и это сообщение об ошибке исчезнет.

0

Чтобы устранить эту ошибку, я установил свой пул приложений в IIS, чтобы разрешить 32-разрядные приложения. Откройте Диспетчер IIS, щелкните правой кнопкой мыши на пуле приложений и выберите «Дополнительные параметры» -> «Включить 32-разрядные приложения» в значение «Истина». Это отлично работает для меня.

Смежные вопросы