У меня возникли трудности с подключением к базе данных Oracle в Windows 7x64
Моя среда выглядит следующим образом:
- Windows 7x64
- Visual Studio 2012
- Oracle 10g (с 32-разрядным клиентом)
- WinForms
Я сделал целевой процессор всех проектов явно CPU x86 (в отличие от Any или x86)
Я подключаюсь к DbProviderFactory.GetFactory
Моя запись ConnectionString в моем app.config выглядит так:
<add name="MYORACLE"
connectionString = "User ID=MYPASSWORD;Password=MYPASSWORd;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MYHOST)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=MYSERVICE)));"
providerName="System.Data.OracleClient" />
(я пробовал его с различными строками подключения стилей без успеха)
Когда я компилирую приложение, он может нормально подключиться, если я запустил исполняемый файл из папки Debug. Однако, если я пытаюсь запустить его в Visual Studio, он не работает, когда я открываю соединение
ORA-06413: Connection not open.\n
Вот пример того, как он называется:
[TestMethod]
public void ConnectToOracle_Success()
{
var connectionStringSettings = ConnectionBuilder.GetConnectionStringSetting(OracleConnectionName);
var providerFactory = ConnectionBuilder.GetProviderFactory(connectionStringSettings);
ConnectionBuilder.ValidateConnectionString(connectionStringSettings);
using (var connection = providerFactory.CreateConnection())
{
Assert.IsNotNull(connection);
connection.ConnectionString = connectionStringSettings.ConnectionString;
try
{
connection.Open();
}
catch (Exception e)
{
Assert.Equals(e.Message, "");
}
}
}
Я видел что-то подобное с Visual Basic 6 в Windows 7x64, а Oracle не нравится пути, на которых он был установлен (т.е. в скобках "Программы (x86)" ). Это то же самое, или есть другой способ убедить Oracle вести себя.