Использование DB2 в смешанном проекте .net core / .net 4.7 - PullRequest
0 голосов
/ 14 июня 2019

Мы хотим повторно использовать нашу библиотеку .net 4.7 (C #) для доступа к базе данных DB2 10.5 из нового проекта .net core 2.2.К сожалению, я получаю ошибки, если открываю соединение:

System.InvalidOperationException: "SQL1159 Ошибка инициализации с поставщиком данных DB2 .NET, код причины 2, токены D: \ Projekte \ Main-Branch-IpIdentity \Services \ InvoiceApi \ InvoiceApi \ bin \ db2app64.dll,, Владелец процесса

Отсутствующий ddl находится в пути в C: \ Program Files \ IBM \ SQLLIB \ BIN. Я скопировал все изэтот каталог в выходной каталог проекта и получил:

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

Я написал консольный проект в ядре .net, вызывая dll ядра .net с доступом к DB2:

   class Program
   {
      static void Main(string[] args)
      {
         var count = DB2AccessCore.Db2Access.GetCount();
      }
   }

namespace DB2AccessCore

  public class Db2Access
  {
     public static int GetCount()
     {
        var con = new DB2Connection("....");
        con.Open();

        var cmd = con.CreateCommand();
        cmd.CommandText = "SELECT COUNT(*) FROM data.abstimmfeldausschnitt";
        var a = cmd.ExecuteScalar();
        con.Close();
        return (int)a;
     }
  }

}}

Пример работаетхорошо, также если я использую тот же код в консоли .net 4.7 и DLL.Но я вызываю dll 4.7 из основной консоли и получаю исключение:

System.AccessViolationException: «Попытка чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена».

Звучит нехорошо…

В чем я не прав или с DB2 невозможно смешать ядро ​​и 4.7?Кто-нибудь уже сделал это?

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...