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

部署到IIS后使用NPOI读取.xls文件报错:Unable to construct record instance

排查方案
  • 检查文件权限
    IIS应用池的运行身份默认没有访问非网站根目录文件的权限。找到你的.xls文件所在目录,右键→属性→安全→编辑,添加IIS AppPool\[你的应用池名称]用户,给它读取和执行、列出文件夹内容、读取权限,应用后重试。

  • 确认文件路径正确性
    本地开发时的相对路径(比如./test.xls)在IIS部署后可能指向错误目录。建议用.NET Core提供的路径API构建绝对路径:

    // 基于网站内容根目录构建路径
    var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "test.xls");
    // 或者注入IWebHostEnvironment后使用
    // var filePath = Path.Combine(_webHostEnvironment.ContentRootPath, "test.xls");
    

    同时可以把实际路径输出到日志,确认文件确实存在于该位置。

  • 验证NPOI依赖完整性
    NPOI除主dll外,还依赖ICSharpCode.SharpZipLib等组件。检查部署后的bin目录,确认所有NPOI相关的依赖dll都已上传,且版本和本地开发环境一致。可以通过NuGet重新打包发布,确保所有依赖都被自动包含。

  • 检查文件本身是否正常
    有可能文件在上传到服务器过程中损坏,或者实际是.xlsx格式却改了后缀为.xls。重新上传原始文件,或者用Excel打开确认文件能正常读取后,再用NPOI尝试解析。

  • 检查IIS应用池配置
    确保你的.NET Core应用对应的IIS应用池设置正确:

    • 托管管道模式设置为集成
    • .NET CLR版本选择无托管代码(针对.NET Core 3.1及以上版本)
    • 若使用自定义账户作为应用池身份,确保该账户有访问目标文件的权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 13:52:01