Процедура настройки IBM.Data.DB2.Core - PullRequest
0 голосов
/ 13 июля 2020

Я хочу подключиться к базе данных DB2 на сервере IBM i 7.2 с клиентского компьютера Windows, используя. NET Core 3.1. Я установил IBM.Data.DB2.Core через NuGet, но он всегда выдает это исключение crypti c:

IBM.Data.DB2.Core.DB2Exception
  HResult=0x80004005
  Message=External component has thrown an exception.
  Source=IBM.Data.DB2.Core
  StackTrace:
   at IBM.Data.DB2.Core.DB2ConnPool.Open(DB2Connection connection, String& szConnectionString, DB2ConnSettings& ppSettings, Object& ppConn)
   at IBM.Data.DB2.Core.DB2Connection.Open()
   at Dapper.SqlMapper.<QueryImpl>d__140`1.MoveNext() in /_/Dapper/SqlMapper.cs:line 1079
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 721
   at Dapper.SqlMapper.Query(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 648
   at SqlPerformanceTesting.Program.<Main>d__0.MoveNext() in C:\Users\mmarchese\Desktop\SqlPerformanceTesting\SqlPerformanceTesting\Program.cs:line 54

Я думаю Мне нужно установить разные драйверы / программное обеспечение на моем Windows сначала клиентская машина. Прямо сейчас у меня установлены «Клиентские решения IBM I Access», но, может быть, мне понадобится что-то еще, например, «Драйверы IBM Data Server?» А для этого нужна лицензия, кажется? Нужно ли мне также устанавливать что-то на сервере IBM на go вместе с ним? Может ли кто-нибудь объяснить это мне или указать на хорошего гида? Сам я мало что мог найти. Например: «Вот общие шаги:»

  1. Установить программное обеспечение A на Windows клиент
  2. Установить программное обеспечение B на сервер IBM i
  3. Установить IBM.Data .DB2.Core на Windows клиенте
  4. Выполните процедуру C для настройки Windows клиента
  5. Выполните процедуру D для настройки сервера IBM

Обновление:

Если я укажу неверную строку подключения, я получу другую ошибку. Поскольку IBM.Data.DB2.Core включает класс для построения допустимых строк подключения, я предполагаю, что моя строка подключения в порядке:

var connStringBld = new DB2ConnectionStringBuilder()
{
    Database = "myDb",
    UserID = "myUser",
    Password = "myPassword",
    Server = "myIp"
};
Console.WriteLine(connStringBld.ConnectionString);
// Database=myDb;User ID=myUser;Password=myPassword;Server=myIp

1 Ответ

0 голосов
/ 13 июля 2020

У меня была та же проблема, но я выполняю только следующие шаги:

  • Установить IBM.Data.DB2.Core (ТОЛЬКО для windows, при использовании в Linux вы должны вместо этого установить IBM.Data.DB2.Core-lnx . Также установлено, потому что я запускаю его в контейнер Docker).

  • Вставьте файлы лицензий (из Windows) в мой проект, расположенный в папке {MyProject} / License . Лицензии: db2.consv.li c и db2ese.li c файлы

  • Также проверьте, что когда я использую Nuget, связанная папка с именем « clidriver » прикреплена к проекту root. Я также подтвердил, что в папке % userprofile% \. Nuget \ packages \ ibm.data.db2.core \ 1.3.0.100 \ build \ clidriver \ license были файлы лицензии.

  • Определите DI в Startup.cs , используя:

    services.AddDbContext<Db2Context>(options =>
    {
        options.UseDb2(connection, si =>
        {
            si.SetServerInfo(IBMDBServerType.AS400, IBMDBServerVersion.AS400_07_02));
        }
    });
    

И это все, что я сделал. Смоделируйте сущности и также используйте LINQ.

...