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

SAP Connector Core通过RFC取数:Kestrel正常但IIS无法运行

问题描述
  • 使用SAP Connector Core库通过RFC获取SAP数据,本地Kestrel服务器运行正常,部署到IIS后无法正常工作
  • 已下载并配置SAP官方NWRFC SDK,安装了ASP.NET Core托管捆绑包
  • 查看C:\Windows\System32\LogFiles\HTTPERR\httperr1.log日志,关键错误信息如下:
2023-03-10 02:36:26 ::1%0 53017 ::1%0 4430 HTTP/2 GET /home/GetSapData 25 - 4 
Connection_Abandoned_By_ReqQueue PublishCode
2023-03-10 02:41:26 ::1%0 53064 ::1%0 4430 HTTP/2 GET /home/GetSapData 1 503 4 AppOffline 
PublishCode
  • 已尝试以下无效配置调整:
    • 将应用程序池的Enable 32-Bit Applications设为true
    • 提高应用程序池的回收私有内存限制
    • 增大缓存输出大小
解决方案建议
  1. 确保NWRFC SDK的兼容性与权限

    • 匹配SDK与应用程序池的位数:若启用32位应用,必须使用32位NWRFC SDK;否则使用64位版本
    • 给IIS应用程序池的运行身份(默认ApplicationPoolIdentity)分配NWRFC SDK安装目录的读取权限
    • 可将NWRFC SDK lib目录下的所有DLL复制到ASP.NET Core应用的发布输出bin目录,规避路径和权限问题
  2. 调整应用程序池配置

    • 将应用程序池的.NET CLR版本设置为无托管代码(ASP.NET Core为自托管模式,IIS仅做反向代理)
    • 临时将应用程序池运行身份改为LocalSystem测试,排除权限不足导致的RFC连接失败
  3. 消除503 AppOffline错误

    • 检查IIS站点物理路径下是否存在app_offline.htm文件,若存在立即删除
    • 重启应用程序池与站点,确保应用正常加载
  4. 启用详细日志定位具体错误

    • 在appsettings.json中开启详细日志:
      {
        "Logging": {
          "LogLevel": {
            "Default": "Information",
            "Microsoft.AspNetCore": "Debug",
            "SapCo2": "Debug"
          }
        }
      }
      
    • 查看应用日志文件,定位RFC连接阶段的具体异常(如SAP服务器连接失败、凭证错误、SDK加载失败等)
  5. 优化IIS请求超时与队列设置

    • 延长IIS站点的连接超时时间(默认120秒),适配RFC请求的耗时
    • 调整应用程序池的队列长度(默认1000),避免请求队列溢出导致Connection_Abandoned_By_ReqQueue错误
  6. 验证SAP连接配置一致性

    • 确认IIS部署环境下的SAP连接参数(服务器地址、系统编号、客户端、账号凭证等)与本地Kestrel环境完全一致,无硬编码的本地配置差异

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:34:55