IIS10下ASP.NET MVC(.NET4.5)网站故障排查请求
IIS10下ASP.NET MVC 4.5网站故障排查与修复
问题根源分析
两个错误的核心原因均与IIS路由模块未正确处理请求、默认文档配置缺失或IIS组件/应用池配置不匹配有关,以下是针对性修复步骤:
一、确认IIS必要组件配置
从提供的IIS功能截图,需确保以下组件已启用:
- ASP.NET 4.5(对应.NET Framework 4.5)
- 托管管道模式设置为集成(经典模式不兼容MVC路由)
- URL重写模块(确保路由规则能被正确解析)
二、修复403.14 Forbidden错误(默认控制器未加载)
1. 配置默认文档
在IIS站点的「默认文档」中添加Default.aspx/Index.aspx,或直接在web.config的<system.webServer>节点下补充配置:
<defaultDocument> <files> <add value="Default.aspx" /> <add value="Index.aspx" /> <add value="Home/Index" /> <!-- 直接指定MVC默认路由 --> </files> </defaultDocument>
2. 修正UrlRoutingModule版本
你的web.config中引用了.NET 3.5版本的路由模块,与.NET 4.5环境不兼容,替换为4.0版本:
<modules runAllManagedModulesForAllRequests="true"> <add name="BasiceHttpModule" type="App.Base.BaseBaseHttpModule.BaseHttpModule, App.Base" /> <!-- 替换为.NET 4.0版本的路由模块 --> <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> </modules>
确保runAllManagedModulesForAllRequests="true"已开启,该设置让所有请求经过托管模块处理,保证路由生效。
三、修复404.0 Not Found错误(控制器路由失效)
1. 检查应用池配置
- 确认应用池的**.NET CLR版本**为
v4.0.30319(对应.NET 4.5) - 托管管道模式必须设置为集成
2. 完善ExtensionlessUrlHandler配置
扩展无扩展名请求的支持范围,修改web.config的<handlers>节点:
<handlers> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <remove name="OPTIONSVerbHandler" /> <remove name="TRACEVerbHandler" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers>
3. 验证路由配置有效性
确保项目中RouteConfig.cs的默认路由配置正确:
public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } }
并在Global.asax中已调用RouteConfig.RegisterRoutes(RouteTable.Routes);。
四、物理路径与权限检查
- 从
applicationhost.config确认虚拟目录物理路径正确(如/Air对应C:\Sites\Air3\SolutionApp\air),路径必须存在。 - 授予IIS应用池身份(如
IIS AppPool\localhost2119)对网站根目录及App_Data目录的读取权限,确保配置文件能被正常加载。
五、进阶排查手段
- 启用IIS失败请求跟踪,查看请求处理的详细流程,定位具体错误节点。
- 检查Windows事件查看器的「应用程序日志」,获取.NET运行时抛出的具体异常信息。
- 验证服务器已正确安装.NET Framework 4.5,可通过控制面板「程序和功能」确认。
内容的提问来源于stack exchange,提问作者Heemanshu Bhalla
相关产品推荐
相关产品推荐

