Развертывание веб-приложения на C # для подключения к базе данных Oracle - PullRequest
1 голос
/ 12 февраля 2012

Когда мы попытались развернуть новый проект, который соединяется с базой данных Oracle, мы столкнулись с некоторыми проблемами.

На моей рабочей станции разработки у меня установлен Oracle dll в c: \ app \ oracle \ product\ 11.2.0 \ client_1 \ BIN, но на веб-сервере разработки он застрял в каталоге c: \ oracle \ product \ 11.2.0 \ client_1 \ BIN (не замечен в папке приложения).

КогдаПриложение развернуто, те библиотеки DLL, на которые ссылаются, должны быть в одном и том же месте на обеих машинах.Поэтому, само собой разумеется, мы получаем ошибку с сервера разработки.

Чтобы исправить это, мы попробовали несколько вещей -

  1. Переместите установку Oracle в c: \ app... на моей машине и восстановить с моей машины разработки.Это не сработало, потому что есть относительные dll, которые полагаются на этот путь.
  2. Поскольку 1 не сработал, мы попытались сбросить переменные пути среды на c: \ oracle на моем компьютере.Это не сработало.
  3. попытался скопировать необходимые библиотеки DLL в мой каталог bin, потому что я понимаю, что Visual Studio будет собираться из GAC, а затем из каталога bin.Это не сработало.

Зная, что переустановка Oracle на сервере разработки в c: \ app \ Oracle не вариант, кто-нибудь еще сталкивался с этой проблемой?

1 Ответ

0 голосов
/ 15 февраля 2012

Вы должны убедиться, что ваша установка Oracle настроена правильно.У меня есть несколько утилит, которые могут помочь с этим.

Шаг 1 -

Приведенные ниже утилиты сначала подтвердят, что .net работает с Oracle на вашем сервере http://tsells.wordpress.com/2010/02/18/oracle-connection-tester-for-net-applications/

Шаг 2 -

Если вышеуказанная утилита сработала - перейдите к шагу 3. В противном случае .net не может увидеть оракула на этом компьютере.Сначала проверьте ваш путь - убедитесь, что каталог oracle bin указывает на правильный каталог.Если нет - измените его и попробуйте снова.

Если это не сработает - я рекомендую полностью удалить oracle и переустановить.Выполните следующие действия.

  1. Остановите все службы (start - run - services.msc) ниже, которые работают

    • oracle mts recovery
    • Координатор распределенных транзакций
  2. Удалить все каталоги оракула из файловой системы (C: \ app, C: \ Program Files | C: \ Program Files (x86 (

    )
  3. Удаление записей Oracle из системного пути

  4. Удаление всех записей Oracle из переменных среды (если они существуют), таких как ORACLE_HOME

  5. Откройте редактор реестра (start - run - regedit) и удалите все записи оракула из следующего ключа

HKLM \ Software \ HKLM \ Software \ Wow6432Node (Только для 64-битных машин)

  1. Пустая корзина (мне становится лучше):)

  2. Перезагрузите машину

  3. Загрузите один из двух элементов

Установка клиента Oracle (полная версия)

ODAC (Oracle Data Providers)

  1. Установите их (убедитесь, что вы выбираете версию клиента - вы используете минимум установки во время выполнения) - НЕ используйте мгновенный клиент - он никогда не работает должным образом.

  2. Скопируйте файл TNSNames.ora в

  3. Проверьте снова с помощью утилиты.Это должно быть успешным.

Шаг 3 -

Если вышеуказанная утилита сработала - вам необходимо убедиться, что битовый уровень вашего приложения соответствует битовому уровню установки клиента Oracle.Для приложения - это будет битовый уровень пула приложений.

Примечания - файл oracle.dataaccess.dll в папке bin используется для создания образов (ngen, aspnet compilation).После того, как вы попытаетесь вызвать провайдер данных Oracle для .net, он будет перенаправлен на ваш клиентский компьютер для выполнения фактического доступа к данным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...