Ошибка инициализации SQL1159 с DB2.NET поставщик данных, код причины 10, токены 0.0.0, 9.7.3


Я пытаюсь открыть соединение с DB2 в консольном приложении. Это прекрасно работает. когда я использую тот же код в службе, размещенной в IIS, он выдает ошибку для DB2. Ниже приведены сведения об ошибке. Мне не хватает некоторых разрешений в IIS ?

Dll: IBM.данные.DB2.dll

Код:

DB2Connection db2Connection = new DB2Connection(connectionString);
DB2Command cmdSelectUsrNameAndPassword = new DB2Command(querySelectUsernameAndPassword, db2Connection);
cmdSelectUsrNameAndPassword.Connection.Open();

Броски:

Ошибка инициализации SQL1159 с поставщиком данных DB2 .NET, код причины 10, токены 0.0.0, 9.7.3

Если я попробую DSN с ODBC в консоли, он работает, но то же самое бросает еще одну ошибку в IIS.

OdbcConnection DbConnection = new OdbcConnection(DSNName);
DbConnection.Open();

Броски:

ASP.NET V4. 0 не имеет полномочий для выполнения требуемой команды или операции.

5 2

5 ответов:

Думаю, это как-то связано с идентификатором пула приложений. Я установил идентификатор пула приложений как " Network service "и дал полное разрешение на" Network Service "в" IBM.Данные.ДБ.dll " в C:\Program файлы\IBM\SQLLIB\BIN\netf20_32\ работали аккуратно.

Посмотрите на документ IBM support doc ниже, в котором описано, почему это происходит и что означает сообщение http://www-01.ibm.com/support/docview.wss?uid=swg21413731 . это помогло мне, добавление в группу DB2USERS позволило нашему приложению работать и, вероятно, лучше, чем работать как сетевая служба.

При установке IBM data server client вы не снимали флажок Включить защиту операционной системы.

Таким образом, вы должны добавить пользователя(ов), которые должны использовать DB2 client dll, в группу DB2USERS, как это указано в последнем шаге установки.

Если требуется идентификация пула приложений IIS, используйте: "IIS AppPool\DefaultAppPool". Добавьте этого пользователя в группу DB2USERS. DefaultAppPool - > имя идентификатора пула приложений

У меня была такая же проблема с приложением, запущенным из IIS Express. Попробовал запустить Visual Studio от имени администратора и проблема решена. Версии: Клиент DB2 версия 10.5, Visual Studio 2015.

Я столкнулся с очень похожим сообщением об ошибке в одном из моих проектов:

SQL1159 Initialization error with DB2 .NET Data Provider, reason code 10, tokens 0.0.0, 10.1.5

Перепробовав все перечисленные выше решения на сайте документации IBM, в конечном итоге оказалось, что установщик DB2 Connect должен запускаться от имени администратора, а не от имени учетной записи пользователя. Удаление и переустановка его как администратора решили проблему.

Запуск программы установки от имени администратора также разблокировал такие параметры, как возможность отключения расширенная безопасность, которая ранее не была представлена.