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

部署在IIS 8的DRF后端连接Informix遇SQLCODE=-11048错误求助

解决Informix ODBC驱动加载翻译库失败(SQLCODE=-11048)的思路

问题背景

在Windows Server 2012 R2的IIS 8上部署的Django REST Framework后端连接Informix数据库时,一直报以下错误:

[Informix][Informix ODBC Driver]Unable to load translation shared library (DLL). SQLCODE=-11048

已知环境信息

  • 服务器长期装了两个版本的Informix,这个错误是近期才出现的
  • 故障发生前只装了HTTP Platform Handler 1.2和Application Request Routing 3.0
  • IIS已启用代理功能,且连接字符串配置没问题:
    SERVER=server_name;DATABASE=db_name;HOST=ip_address;SERVICE=port;Protocol=used_protocol;UID=user_name;PWD=password;
    

已尝试但无效的操作

  • 禁用IIS代理,问题没解决
  • 尝试卸载HTTP Platform Handler,卸不掉
  • 已经确认环境变量和setnet32里的INFORMIXDIR配置正确
  • 用ConnectTestDemo测试,只有一个SDK版本能正常连接,另一个也报同样的错

解决思路

1. 检查Informix翻译库的路径和权限

  • 找到报错的Informix版本对应的翻译库(一般在%INFORMIXDIR%\lib\cli\目录下,比如icudt*.dll、icuin*.dll、icuuc*.dll这类文件),确认这些文件存在且没损坏
  • 给IIS应用程序池对应的身份(比如IIS AppPool\你的应用池名称)授予这些DLL文件及所在目录的读取和执行权限,避免因为权限不够加载失败

2. 排查多Informix版本的环境变量冲突

  • 虽然INFORMIXDIR配置对了,但要检查系统PATH环境变量里,两个Informix版本的bin和lib目录的顺序。确保当前应用用的Informix版本的路径排在另一个版本前面,防止加载错依赖库
  • 可以在IIS应用程序池的高级设置里,添加自定义环境变量,强制指定当前应用要用的INFORMIXDIR和PATH,覆盖系统级的环境变量,避免版本冲突

3. 检查HTTP Platform Handler/ARR安装带来的依赖干扰

  • 就算卸不掉HTTP Platform Handler,试试修复组件:打开控制面板-程序和功能,找到HTTP Platform Handler 1.2,右键选更改-修复,修复完重启IIS
  • 检查ARR的代理配置有没有改IIS的进程环境,比如applicationHost.config里有没有影响进程PATH的配置,可暂时注释ARR相关配置后重启IIS测试(测试完记得恢复)

4. 验证ODBC驱动的版本匹配

  • 确认当前应用用的ODBC驱动版本和目标Informix版本完全匹配,别混用不同版本的驱动和客户端库
  • 打开ODBC数据源管理器(64位/32位),检查已配置的Informix数据源用的驱动版本,确保和测试通过的那个SDK版本一致

5. 检查Windows系统更新或DLL依赖缺失

  • 用dumpbin /dependents命令(需要装Visual Studio工具集)检查翻译库依赖的其他DLL是否存在,有没有系统更新导致某些系统DLL版本变化
  • 运行sfc /scannow修复系统文件,排除系统级DLL损坏的可能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:57:41