Windows Server 2019上IIS 10无法运行ASP.NET MVC网站求助
排查ASP.NET MVC部署到IIS 10后404错误的步骤
1. 核对IIS网站核心配置
- 确认网站物理路径准确指向你复制的发布文件夹,路径无拼写错误且文件夹确实存在于服务器。
- 检查网站绑定信息:访问时用的IP/域名、端口要和绑定设置完全匹配,hosts文件的映射(如
服务器IP 你的域名)要正确生效。 - 应用程序池配置必须对应:
- .NET CLR版本选
v4.0.30319(适配.NET 4.7.2),绝不能选“无托管代码”。 - 托管管道模式设为集成(ASP.NET MVC适配该模式)。
- 若用默认
ApplicationPoolIdentity,需给发布文件夹额外授予该身份的读写权限(仅IUSR和IIS_IUSRS权限可能不足)。
- .NET CLR版本选
2. 重新注册ASP.NET到IIS
以管理员身份打开命令提示符,执行对应命令完成注册:
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
(32位应用替换为Framework路径)
3. 确认URL重写模块已安装
ASP.NET MVC依赖该模块解析路由(如/Home/Index这类URL),缺失会直接导致路由匹配失败:
打开服务器管理器,通过“添加角色和功能”路径,确认Web服务器(IIS)> Web服务器> 应用程序开发> URL重写已勾选安装。
4. 检查发布文件完整性
对比本地发布目录和服务器文件夹,确保关键文件/目录存在:
web.config:路由配置未被篡改,确认<routes>节点规则正确。bin文件夹:包含所有必要DLL,尤其是System.Web.Mvc.dll等ASP.NET MVC核心程序集。- 发布时选择文件系统方式,并勾选“部署依赖项”(确保服务器缺失的.NET组件被一并部署)。
5. 启用详细错误日志定位原因
- 进入IIS管理器的网站设置,点击错误页,编辑功能设置为“详细错误”。
- 再次访问报错URL,查看详细错误信息,会明确指出404的具体诱因(如路由未匹配、文件缺失、权限拦截等)。
6. 确保路由模块正常工作
在web.config的<system.webServer>节点添加或确认以下配置,保证路由模块能处理所有请求:
<modules runAllManagedModulesForAllRequests="true"> <remove name="UrlRoutingModule-4.0" /> <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" /> </modules>
内容的提问来源于stack exchange,提问作者Kumar C
相关产品推荐
相关产品推荐

