С# подключиться к базе данных Oracle с помощью кошелькаC#

Место общения программистов C#
Ответить
Anonymous
 С# подключиться к базе данных Oracle с помощью кошелька

Сообщение Anonymous »

Я создаю приложение, которое подключается к нескольким базам данных Oracle. У меня нет проблем с подключением к базам данных в нашей внутренней сети, но мне нужно подключиться к одной из них, размещенной в Oracle Cloud. В SQL Developer соединение осуществляется с помощью кошелька Oracle, но я буквально понятия не имею, как использовать кошелек на C#. Пример был бы очень признателен.
****Редактировать
Я, по крайней мере, научился распознавать мои записи TNS, но я нажал проблема, в решении которой я не могу добиться прогресса. Вот мой код;

Код: Выделить всё

using System;
using System.Data;
using System.Data.Common;
using Oracle.ManagedDataAccess.Client;

class GetSchemaSample
{
static void Main(string[] args)
{
string constr = "User Id=/; Data Source=mytns;";
string ProviderName = "Oracle.ManagedDataAccess.Client";

DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName);

using (DbConnection conn = factory.CreateConnection())
{
try
{
conn.ConnectionString = constr;
conn.Open();

DataTable dtSchema = conn.GetSchema();
dtSchema.WriteXml(ProviderName + "_Schema.xml");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
Console.ReadLine();
}
}
}
И добавил это в свой App.config; Я столкнулся с ошибкой:

Код: Выделить всё

The path is not of a legal form.
at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
at System.IO.Path.GetFullPathInternal(String path)
at System.IO.Path.GetFullPath(String path)
at System.IO.FileSystemWatcher.StartRaisingEvents()
at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.CreateSEPSFileWatcher(String walletPath, String walletFile)
at OracleInternal.ConnectionPool.OraclePoolManager.InitializeSEPSCredentials()
at OracleInternal.ConnectionPool.OraclePoolManager.Initialize(ConnectionString cs, OracleConnection con)
at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.GetPM(ConnectionString cs, OracleConnection con, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword, Boolean& bAuthenticated, Boolean& newPM)
at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword, OracleConnection connRefForCriteria)
at Oracle.ManagedDataAccess.Client.OracleConnection.Open()
at GetSchemaSample.Main(String[] args) in C:\Users\peter.holliday\source\repos\OACTesting\Connection1.cs:line 39
Я пробовал обновить запись app.config WALLET_LOCATION всеми возможными способами, а также файл sqlnet.ora в кошельке (я предполагаю, что это отвлекающий маневр, поскольку app.config кажется чтобы указать на переопределение этого), но я не могу избавиться от этой ошибки. Буду признателен даже за указатель на то, как я могу увидеть значение переменной «String WalletFile», указанной в ошибке.

Подробнее здесь: https://stackoverflow.com/questions/627 ... ing-wallet
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»