【问题标题】:System.TypeLoadException in IBM.Data.DB2Types.DB2DynArrayIBM.Data.DB2Types.DB2DynArray 中的 System.TypeLoadException
【发布时间】:2018-07-02 22:06:49
【问题描述】:

我是使用 DB2 的新手。我添加了 IBM.Data.DB2 DLL 的参考。 DLL 的路径来自 X86 目录,并且本地副本设置为 False。 我正在使用 VisualStudio 2015,其调试属性设置为 x86。 我能够成功构建项目,但出现以下运行时错误:

“/”应用程序中的服务器错误。 无法从程序集“IBM.Data.DB2,版本=9.7.4.4,文化=中性,PublicKeyToken=7c307b91aa13d208”加载类型“IBM.Data.DB2Types.DB2DynArray”。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.TypeLoadException:无法从程序集“IBM.Data.DB2,Version=9.7.4.4,Culture=neutral,PublicKeyToken=7c307b91aa13d208”加载类型“IBM.Data.DB2Types.DB2DynArray”。

如果有人可以帮助我或需要任何其他详细信息来调查它,请告诉我。

【问题讨论】:

  • 打开一个命令提示符窗口,搜索 db2level.exe 并运行它并在您的问题中显示它的输出。您可能会在“c:\Program Files\IBM\sqllib\bin\db2level.exe”中找到它
  • 嗨输出:sql10007n 消息 -1390 无法检索。原因代码:“6” 它位于“c:\Program Files (x86)\IBM\sqllib\bin\db2level.exe”下
  • 您好,我已经运行了 db2cwadmin.bat,然后再次运行 db2level。但我仍然面临同样的问题。这对我来说也像是配置问题,因为我刚刚通过查看不同的机器在本地克隆了 DB2。所以我没有为 9.7 安装 DB2,我只是从另一台机器复制粘贴目录并手动进行所有其他配置更改。
  • 使用 db2level.exe 测试我安装的 DB2 运行良好。它位于“c:\Program Files\IBM\sqllib\bin\db2level.exe”位置。但我无法使用它,因为根据我的分析,版本 10 不包含命名空间 DB2DynArray。如果我愿意使用它,然后我必须对此进行代码更改,这是我不允许做的。
  • 你能建议我从哪里获得 9.7 版本的 DB2 .exe。

标签: db2


【解决方案1】:

如果您的代码显式使用 DB2DynArray 类,看起来 IBM 从 V9.7 开始从 Db2 中删除了该类(即 DB2DynArray 仅在 V9.5 之前的版本中可用)。

请注意,IBM 不再支持 Db2-LUW V9.5 和 V9.7(当前 Db2 for Linux/Unix/Windows 版本为 V11.x)。

除非企业同意运行不受支持的版本的风险,否则请考虑替代解决方案。

需要 IBM 注册才能从 this site 下载 Db2 版本(包括修订包)。

【讨论】:

  • 如果我将使用最新版本的 V11,那么它将不支持 DB2DynArray 类。如果我获得了代码更改的批准,那么如何更改在我的应用程序中编写的代码,例如 DB2DynArray DREC = LOADDASH.GetArg(4).ToString();字符串 CTM = DREC.Extract(1, 1).ToString();字符串 MRR = DREC.Extract(2, 1).ToString();字符串 YRR = DREC.Extract(3, 1).ToString(); ......还有更多。
  • 您的原始问题由版本详细信息回答,因此将其标记为已回答。不要将 cmets 用于后续问题,而是提出一个新问题,并将您的代码(最小可验证示例)放入新问题中,并提供代码试图实现的*完整详细信息*,而不仅仅是那些引用缺失的类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
相关资源
最近更新 更多