Я пытаюсь подключиться к БД Oracle из микросервиса C # dotnet Core 2.2 на Linux. Выдает ошибку «Невозможно разрешить имя узла подключения», ORA-12545. Я пытаюсь избежать использования IP-адреса для подключения и не могу установить клиент Oracle на этом устройстве, что, я подозреваю, было бы легко исправить. Я должен отметить, что подключение напрямую к IP-адресу работает в Linux, при этом не удается установить соединение только с именем хоста.
Соединение прекрасно работает при запуске на локальной машине с Windows без установленного клиента Oracle. Я пробовал несколько версий пакета ODP.NET Core, но безрезультатно. Машина Linux - это Red Hat 7.7. Я попытался добавить ip / hostname в файл / etc / hosts. nslookup на имя хоста работает просто отлично.
Код-нарушитель довольно прост:
string sConnectionString = $"User Id={sUserId};Password={sPassword};Data Source={sHost}:1521/{sServiceName};";
_logger.LogI(sConnectionString);
OracleConnection con = new OracleConnection(sConnectionString);//Dies here on Linux.
System.Console.WriteLine(con.State.ToString());
OracleCommand cmd = con.CreateCommand();
Ошибка: Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-12545: Сетевой транспорт: невозможно разрешить имя узла подключения---> OracleInternal.Network.NetworkException (0x80004005): ORA-12545: сетевой транспорт: невозможно разрешить имя узла подключения ---> System.Net.Internals.SocketExceptionFactory + ExtendedSocketException (00000001, 11): ресурс временно недоступен
Любые идеи были бы великолепны, я их исчерпываю!