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

.NET Core应用本地正常,部署至IIS 10服务器出现404错误求助

.NET Core部署到IIS 10后出现404的排查方案

老哥,我碰到过好几个类似的情况,给你列几个最可能的排查点,按顺序试一遍应该能解决:

  • 先确认服务器装了.NET Core Hosting Bundle
    这是核心前提!IIS本身没法直接运行.NET Core应用,必须安装这个配套组件。你可以去服务器的「控制面板→程序和功能」里找有没有「Microsoft .NET Core Hosting Bundle」的条目,没有的话赶紧装和你开发环境匹配的版本(比如你用.NET Core 3.1就装对应3.1的bundle),装完记得重启IIS或者整个服务器。

  • 检查应用池的关键设置
    应用池的.NET CLR版本必须设为「无托管代码」——因为.NET Core是跨平台独立运行的,不需要IIS的传统托管环境。操作步骤:IIS管理器→找到你的应用池→右键「高级设置」→把.NET CLR版本改成「无托管代码」,然后重启应用池。

  • 验证发布文件的完整性
    从VS发布时选「文件夹」目标,然后把整个发布文件夹的内容完整复制到IIS站点目录,别只挑几个文件。可以对比下开发环境bin目录和服务器上的文件,确保web.config、你的应用dll、依赖包这些核心文件都没缺失。

  • 检查web.config的配置细节
    打开服务器上的web.config,重点看aspNetCore节点:

    <aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    

    把stdoutLogEnabled设为true,同时在站点目录下建个logs文件夹,这样能生成详细的运行日志,方便定位具体错误。另外确认processPath和arguments指向的路径是对的。

  • 确认站点物理路径和权限
    IIS站点的物理路径必须指向你发布文件的根目录,而且应用池的标识(比如AppPoolIdentity)要有这个目录的读取权限。右键站点目录→「属性→安全」→添加AppPool\你的应用池名称,给它「读取」和「执行」权限。

  • 测试服务器本地直接运行应用
    在服务器上打开命令行,cd到站点目录,执行dotnet YourApp.dll,看应用能不能正常启动。然后用服务器本地的浏览器访问http://localhost:5000(或你配置的端口),如果能访问,说明应用本身没问题,问题出在IIS配置;如果本地跑也报错,那就是发布的应用有依赖缺失或者代码问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:31:46