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

OWIN自托管Windows服务部署到Windows Server时启动报FileNotFoundException异常

异常原因分析
  • 核心依赖缺失:OWIN自托管运行必须依赖Microsoft.Owin.Host.HttpListener程序集,多数场景下本地开发环境通过Nuget正确引用了该包,但部署时该程序集未被复制到服务运行目录。Windows 10环境如果有开发工具或其他应用共享了该程序集即可正常运行,而干净的服务器环境没有该共享程序集就会抛出文件找不到异常。
  • .NET Framework版本不匹配:你的应用基于.NET Framework v4.0.30319编译,Windows Server 2012R2/2018默认的.NET Framework版本可能不满足运行要求,或者服务器未启用对应版本的.NET Framework功能。
  • 项目生成配置问题:如果你的项目设置了平台目标为x86/x64,但服务器系统架构不匹配,或者部分依赖程序集的架构和主程序不一致,也会触发加载程序集失败的FileNotFoundException。
可行解决方案

方案1:确认核心依赖复制到运行目录

  • 打开项目Nuget包管理,确认已安装Microsoft.Owin.Host.HttpListener包
  • 在项目引用列表中找到Microsoft.Owin.Host.HttpListener,右键属性,将「复制本地」属性设置为True
  • 重新发布项目,确认输出目录中存在Microsoft.Owin.Host.HttpListener.dll文件

方案2:检查服务器.NET Framework安装情况

  • 在服务器上打开「控制面板-程序和功能-启用或关闭Windows功能」,确认.NET Framework 4.x(建议安装4.7.2及以上兼容版本)功能已完整启用
  • 如果是Server Core环境,可以通过DISM命令安装对应版本的.NET Framework功能

方案3:统一项目生成平台

  • 打开项目属性-生成页,将平台目标设置为Any CPU,取消「首选32位」选项
  • 重新编译发布后再部署到服务器

如果以上方案均未解决问题,可以使用Process Monitor工具抓取服务进程运行时的文件加载日志,定位具体缺失的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:00:03