У меня была точно такая же проблема. Почему-то кажется, что использование «псевдонима» не работало.
Мой tnsnames.ora
файл имел что-то вроде этого:
oracle =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = myoracleserver.mydomain.com)(PORT = 1525))
)
(CONNECT_DATA =
(SID = MYORACLESERVER)
)
)
Затем я изменил строку подключения Data Source
с (используя псевдоним):
User Id=scott;Password=tiger;Data Source=oracle
Кому (не используя псевдоним):
User Id=scott;Password=tiger;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=myoracleserver.mydomain.com)(PORT=1525)))CONNECT_DATA = (SID = MYORACLESERVER)))
Теперь все работает безупречно с ODP.NET . Это было и все еще работает с псевдонимом, когда я использую старое соединение ADODB.
UPDATE:
ODP.NET не может прочитать ваш tnsnames.ora
файл напрямую из вашего приложения. Вам нужно настроить, как я сказал в своем ответе, или вы также можете указать, где находится ваш файл tnsnames.ora
в вашем файле Web.Config
или App.Config
.
См. мой другой ответ для получения более подробной информации обо всех имеющихся вариантах.