TNS, не может обработать имя службы, когда две разные версии установлены вместе - PullRequest
0 голосов
/ 02 сентября 2011

На нашем сервере мы публикуем приложение asp.net, которое использует oracle11g в качестве базы данных.

Мы просто устанавливаем строку подключения в web.config, она работает.

Однако кто-то устанавливает oracle8 на тот же сервер, поскольку он нужен им в другом клиентском приложении.

Но после этого наше веб-приложение может не работать, мы получаем ошибку:

ora-12154 TNS не обрабатывает имя службы

Затем я обнаружил, что среда пути была изменена.Сначала добавляется «C: / app / oracle81 / bin».Но даже если я сначала изменил «D: / app / oracle11g / bin», он тоже не работает.

Есть идеи, как заставить работать оба?

Ответы [ 2 ]

0 голосов
/ 09 сентября 2011

По умолчанию .net Framework использует каталог FIRST oracle, в котором он находится в операторе пути.Были некоторые дискуссии о том, как обойти это, но ваш лучший выбор - запустить одного клиента на машину.

0 голосов
/ 03 сентября 2011

Вы можете выяснить, какие драйверы используются в .NET ... Устаревший поставщик Oracle от Microsoft, собственный поставщик Oracle или какой-либо поставщик ODBC, работающий поверх нескольких типов возможных драйверов в DSN. Каждый может быть исправлен по-своему.

Но похоже, что установка Oracle 8 в некотором смысле украла приоритет над установкой Oracle 11, а не просто переменной среды «PATH». Мое предположение было бы реестром. В порядке возрастания неудобств и эффективности вы можете попробовать:

1) Запустите установщик Oracle 11 и посмотрите, знает ли он о Oracle 8 home. (Маловероятно, если это 8.0). Установите его по умолчанию или вверху списка; выход; затем вернитесь и установите Oracle 11 в качестве значения по умолчанию / верхней части списка.

2) Настройте записи TNS в вашем домашнем хранилище Oracle 8 для подключения к вашей базе данных Oracle 11. Живите с тем фактом, что вы используете очень устаревший клиент.

3) Удалите и переустановите Oracle 11, чтобы заставить его украсть приоритет.

...