System.Runtime.InteropServices.ExternalException при вызове Oracle.DataAccess.Client.OracleConnection.Open()

У меня есть следующий код для подключения к базе данных с помощью ODP.net:

// connection information removed to protect sensitive information
string host = "******";
string sid = "*****";
string connectDescriptor = string.Format("(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST={0})(PORT=1521))(CONNECT_DATA=(SID={1})))", host, sid);
string username = "*****";
string password = "*****";

string connectionString = string.Format("Data Source={0};User ID={1};Password={2};", connectDescriptor, username, password);
OracleConnection conn = null;

try
{
    conn = new OracleConnection(connectionString);
    conn.Open();
}
catch (OracleException oraex)
{
    MessageBox.Show(oraex.ErrorCode + ": " + oraex.Message);
}
finally
{
    conn.Close();
}

Позвонить Open() выдает ошибку, и я не могу многое понять по этому поводу. oraex.ErrorCode является -2147467259 а также oraex.Message является "", Попытка получить доступ к большинству членов брошенного исключения приводит к NullReferenceException,

доступ к членам приводит к исключению NullReferenceException

Кроме того, я вижу, что базовое исключение System.Runtime.InteropServices.ExternalException,

System.Runtime.InteropServices.ExternalException

Что здесь происходит? Из-за InteropServices Исключение Я предполагаю, что это как-то связано с COM.

Дополнительная информация

  • Я только что установил ODAC 12c.
  • Информация о соединении проверена. Я могу подключиться к той же базе данных, используя приложение SilverLight, которое использует устаревшие System.Data.OracleClient, Они в порядке.

1 ответ

Решение

Похоже, это что-то с клиентом оракула. Я сталкивался с подобными проблемами с веб-проектами, в то время как консольные проекты работали просто отлично. Если вы установили 64-битный ODAC, полностью удалите его и попробуйте 32-битный. Также дважды проверьте целевую платформу в Visual Studio "32bit". Если это работает, вы можете найти, что не так с 64-битной установкой.

Другие вопросы по тегам