You need to enable JavaScript to run this app. Visual Studio 2019 OpenApi 3.0 Swagger应用Oracle12数据库连接超时问题
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2019 OpenApi 3.0 Swagger应用Oracle12数据库连接超时问题

问题原因

出现该错误的核心原因是OpenApi应用的运行上下文、配置与可正常运行的WinForms/Web项目存在差异,具体可分为以下几类:

  • 运行位宽与权限差异:虽然项目已设为x86运行模式,但如果OpenApi通过IIS部署,默认未开启32位应用支持;同时OpenApi运行时使用的服务账户没有权限读取32位Oracle客户端的配置文件、注册表项,导致驱动无法正常发起连接请求,最终触发超时。
  • 配置读取差异:OpenApi项目的连接字符串配置源(如appsettings.json)与正常项目不一致,或者缺少Devart驱动所需的特殊配置参数,导致连接请求参数错误。
  • 许可配置缺失:Devart驱动要求项目嵌入许可文件,WinForms/Web项目已正确配置但OpenApi项目未配置,驱动异常拦截连接请求,表现为超时错误。
解决方案

按照以下优先级逐项排查即可解决:

  1. 运行环境校验
  • 若为IIS部署:打开对应应用程序池的「高级设置」,将「启用32位应用程序」设为True;将应用程序池标识改为有Oracle访问权限的本地用户,或给默认标识授予32位Oracle客户端安装目录、tnsnames.ora所在目录、注册表项HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Oracle的读取权限。
  • 若为自宿运行:在任务管理器中确认OpenApi进程标注为「32位」;检查系统环境变量PATH中已添加32位Oracle客户端的bin目录,且优先级高于64位Oracle路径。
  1. 连接字符串调整
  • 先写死与正常运行项目完全一致的连接字符串到代码中测试,排除配置读取错误;
  • 显式延长超时时间,连接字符串追加Connection Timeout=60;;
  • 可开启Devart直连模式避免依赖本地Oracle客户端,连接字符串追加Direct=True;SID=你的实例名;Port=1521;,无需本地安装Oracle客户端即可连接。
  1. 许可配置补充
  • 在OpenApi项目根目录添加licenses.licx文件,文件属性设为「嵌入的资源」,文件内容添加以下行(注意版本号要与你安装的Devart.Data.Oracle版本完全匹配):
Devart.Data.Oracle.OracleConnection, Devart.Data.Oracle, Version=9.14.1234.0, Culture=neutral, PublicKeyToken=09af7300eec23701
  1. 日志排查
  • 可开启Devart驱动调试日志定位具体问题,在打开连接前添加代码:
OracleConnection.Trace = true;
OracleConnection.TraceFile = @"C:\temp\devart_trace.log";

查看日志中连接流程的具体卡住节点即可精准定位问题。

内容的提问来源于stack exchange,提问作者i-co

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 18:54:02