You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BizTalk 2020连接Oracle时Oracle.DataAccess程序集加载失败求助

解决方案:BizTalk 2020 与 Oracle 19c 客户端程序集绑定问题

1. 修正程序集绑定重定向配置

GAC中已存在4.122.19.1版本的Oracle.DataAccess,需确保重定向规则覆盖所有相关配置文件:

  • BizTalk主机实例配置文件:找到BTSNTSvc.exe.config(32位主机)和BTSNTSvc64.exe.config(64位主机),路径通常为C:\Program Files (x86)\Microsoft BizTalk Server 2020\,添加如下节点:
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" culture="neutral"/>
      <bindingRedirect oldVersion="4.122.0.0-4.122.18.3" newVersion="4.122.19.1"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>
  • 全局machine.config:同步修改32位和64位版本的配置文件:
    • 32位路径:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
    • 64位路径:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
      确保重定向节点与上述内容一致。

2. 修复System.Data依赖配置

TypeInitializationException多由Oracle.DataAccess与System.Data版本不匹配引发,需调整machine.config中的DbProviderFactories节点:
找到<system.data>下的<DbProviderFactories>,修正Oracle节点的版本信息:

<system.data>
  <DbProviderFactories>
    <remove invariant="Oracle.DataAccess.Client"/>
    <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
  </DbProviderFactories>
</system.data>

注意32位和64位machine.config都要同步修改。

3. 验证Oracle客户端与GAC注册

  • 确认32位和64位Oracle客户端的Oracle.DataAccess.dll已正确注册到对应.NET版本的GAC:
    • 注册32位.NET 4版本:gacutil /i "C:\Oracle\client_1\odp.net\bin\4\Oracle.DataAccess.dll"
    • 注册64位.NET 4版本:gacutil /i "C:\Oracle\client_1\odp.net\bin\64\4\Oracle.DataAccess.dll"
  • 执行gacutil /l Oracle.DataAccess,检查输出中是否同时存在32位和64位的4.122.19.1版本。

4. 匹配BizTalk主机实例位数与Oracle客户端

  • 在BizTalk管理控制台中,右键目标主机实例→属性,确认“32位仅”选项与使用的Oracle客户端位数一致:32位主机用32位客户端,64位主机用64位客户端。

5. 定位TypeInitializationException根源

  • 启用程序集绑定日志查看器(fuslogvw.exe,以管理员身份运行),设置“日志绑定失败到磁盘”,重新运行业务流程后查看日志,定位具体依赖项错误。
  • 查看Windows事件查看器中的BizTalk日志,获取TypeInitializationException的内部异常信息,通常会直接指出问题(如原生Oracle库缺失、权限不足等)。

6. 调整Oracle客户端环境变量

  • 确保系统环境变量PATH中,对应位数的Oracle客户端bin目录优先级最高:
    • 32位:C:\Oracle\client_1\bin
    • 64位:C:\Oracle\client_1\bin(若为独立64位安装,路径可能为C:\Oracle\client_1\bin\64,以实际安装路径为准)
  • 重启BizTalk主机实例和服务器,使环境变量生效。

内容的提问来源于stack exchange,提问作者NealWalters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:52:49