Значение не может быть нулевым, ключ параметра
Система.ArgumentNullException: значение не может быть null
Имя параметра : ключ
Ошибка возникает в conn.open()
Приложение не может подключиться к базе данных.
но строка подключения указана в файле webconfig.
Аутентификация через SQL сервер
а таблицы базы данных остальной части приложения-это Oracle.
Поставщик Услуг : Oracle.ManagedDataAccess.Клиент
Value cannot be null. Parameter name: key Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentNullException: Value cannot be null. Parameter name: key Source Error: Line 179: OracleDataAdapter da = new OracleDataAdapter(cmd); Line 180: DataSet ds = new DataSet(); Line 181: conn.Open(); Line 182: da.Fill(ds); Line 183:
трассировка стека:
[ArgumentNullException: Value cannot be null. Parameter name: key] System.Collections.Generic.Dictionary`2.FindEntry(TKey key) +12994473 OracleInternal.Common.SyncDictionary`2.ContainsKey(K k) +79 OracleInternal.ConnectionPool.PoolManager`3.CreateServiceCtx(PR pr) +58 OracleInternal.ConnectionPool.PoolManager`3.PutNewPR(PR pr, Boolean bForPoolPopulation) +288 OracleInternal.ConnectionPool.PoolManager`3.CreateNewPR(Int32 reqCount, Boolean bForPoolPopulation, ConnectionString csWithDiffOrNewPwd, CriteriaCtx criteriaCtx, String instanceName, List`1 switchFailedInstNames) +3667 OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, CriteriaCtx criteriaCtx, String affinityInstanceName, Boolean bForceMatch) +8424 OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, CriteriaCtx criteriaCtx, String affinityInstanceName, Boolean bForceMatch) +951 OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword, CriteriaCtx criteriaCtx) +1024 Oracle.ManagedDataAccess.Client.OracleConnection.Open() +3287 ********.DAL.GetRequestorID(String currentUserEmail) in C:\Users\*****\Documents\Visual Studio 2015\Projects\Main\******\******\DAL.cs:181 *******._Default.Page_Load(Object sender, EventArgs e) in C:\Users\*****\Documents\Visual Studio 2015\Projects\Main\******\********\Default.aspx.cs:21 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51 System.Web.UI.Control.OnLoad(EventArgs e) +95 System.Web.UI.Control.LoadRecursive() +59 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +780
Что я уже пробовал:
Изменение поставщика oracle на поставщика ODAC.
Dave Kreskowiak
Покажите строку подключения. Вот где, вероятно, будет проблема, если он бросит на Конн.Открытый призыв.
Dave Kreskowiak
Появляются ли те имена "источников данных", которые вы выделили, в TNSNAMES.ORA?
UpATL
Источником данных является ip-адрес сервера
соединение не использует файл tns
Dave Kreskowiak
Если я чего-то не упущу, это не сработает. Дескриптор Oracle, который выглядит примерно так:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)))
любой из них должен быть в имени TNSNAME.Или файл с именем, которое ваш источник данных будет использовать для ссылки на него, или этот материал должен быть значением для источника данных. Например:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=******;Password=**************
UpATL
Строка подключения, используемая для работы до
&ЛТ;добавить имя="******параметр connectionString" свойства connectionString="источник данных=имя_сервера/ЦТ;пароль=***;идентификатор пользователя=****" имя_поставщика="Оракул.ManagedDataAccess.Клиент" />
Dave Kreskowiak
Я не могу проверить это сам, но несколько лет назад нам пришлось поместить дескриптор Oracle в TNSNAMES.ORA и поместите идентификатор этого дескриптора в качестве источника данных в разделе web.config connectionStrings.