aspnet mvc 路由被识别为文件的解决方案

背景

上面要做个健康检查功能,我的项目要加个url /monitor.action返回success文本。

开始的解决办法-添加路由

            routes.MapRoute(
                name: "HealthCheck",
                url: "monitor.action",
                defaults: new { controller = "SysMonitor", action = "Index", id = UrlParameter.Optional }
            );

  

问题

这个url在mvc里会识别为一个静态文件,不会走路由,如果使用 /monitor.action/这样访问倒是可以实现。But上面规定不能要后面的slash。

最终解决方案

在加了路由的基础上,再在web.config中的system.webServer节点的modules中加入下面这两句话

 <remove name="UrlRoutingModule-4.0" />
      <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
      

  

这样测试就通过了。

关于UrlRoutingModule-4.0的知识,请看:https://www.cnblogs.com/zhangxiaolei521/p/5691344.html 

 
原文地址:https://www.cnblogs.com/saving/p/10036936.html