ASP.Net Core Web API发布到IIS10报404错误 脱离IIS运行正常
可行排查及解决步骤
基础配置校验
- 确认IIS站点物理路径指向发布产物的根目录:该目录下需直接包含
web.config、应用主dll、appsettings.json、wwwroot文件夹等文件,禁止指向上级目录。 - 校验
web.config节点配置:找到<handlers>段,确认存在如下注册逻辑,禁止手动修改发布工具自动生成的web.config:
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
- 确认IIS模块注册状态:打开对应站点的「模块」功能,检查列表中是否存在
AspNetCoreModuleV2,若不存在:- 确认安装托管包的顺序为「先装IIS,后装.NET Core Windows Server Hosting 2.2.6」,顺序颠倒需重新修复安装托管包
- 再次确认应用池配置为「无托管代码」、管道模式为集成模式
应用启动校验
- 直接在服务器本地启动应用验证:打开cmd进入站点根目录,执行命令
dotnet 你的应用主程序名称.dll,待启动完成后访问控制台输出的监听地址(默认是http://localhost:5000),如果本地直接访问也异常,说明是应用本身配置/依赖问题,和IIS无关;如果本地访问正常,继续下一步排查。 - 开启应用启动日志排查:修改
web.config中<aspNetCore>节点属性,设置stdoutLogEnabled="true"、stdoutLogFile=".\logs\stdout",手动在站点根目录创建logs文件夹,给NetworkService账号开放该文件夹的读写权限,发起请求后查看生成的日志,排查是否有配置加载失败、依赖缺失、数据库连接失败等启动异常。
冲突排查
- 暂时禁用站点及IIS全局配置的所有URL Rewrite规则,排除规则拦截导致的404问题。
- 检查站点是否绑定了特殊端口、主机头,确认请求地址和站点绑定配置完全匹配。
内容的提问来源于stack exchange,提问作者NewTech
相关产品推荐
相关产品推荐

