部署到IIS的.NET Core 5.0 Web应用访问返回404错误排查求助
排查及解决方案
- 应用池配置校验:对应站点的应用池 .NET CLR版本必须设置为
无托管代码,托管管道模式选择集成模式,配置完成后重启应用池和站点。 - 重新安装托管捆绑包:若你安装IIS的时机晚于dotnet hosting包,会导致ASP.NET Core模块未正常注册。直接重新安装一次
dotnet-hosting-5.0.11-win安装包,安装完成后执行iisreset命令重启IIS生效。 - 本地验证发布包有效性:在服务器上进入站点根目录,打开cmd执行
dotnet 你的项目名称.dll,查看控制台输出是否正常启动,访问控制台显示的默认监听地址(一般为http://localhost:5000),如果能正常访问说明发布包无问题,故障出在IIS配置环节;如果直接运行也报错,重新发布项目,目标运行时选择win-x64或可移植。 - 权限与配置文件校验:
- 确认站点根目录已给
IUSR、IIS_IUSRS组开放读取、执行权限 - 检查根目录下
web.config内容,processPath需正确指向dotnet执行路径或项目启动exe,arguments参数需正确填写项目dll的相对路径,如arguments=".\MyWebApp.dll"
- 确认站点根目录已给
- IIS模块校验:打开IIS的处理程序映射,确认存在
AspNetCoreModuleV2的启用条目,若不存在则说明托管包未正确安装。 - 访问地址校验:确认你访问的地址和站点绑定的IP、端口、主机名完全匹配,若站点绑定了指定主机名,直接用IP访问会返回404。
排查过程中可以临时关闭目录浏览功能,该配置对ASP.NET Core应用无实际作用,还会带来安全风险。
内容的提问来源于stack exchange,提问作者Rez Khan
相关产品推荐
相关产品推荐

