我有一个运行正常的MVC4网站。尝试发布到生产路由时不起作用。我唯一的规则是默认:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "General", action = "Index", id = UrlParameter.Optional }
);
但是,在生产服务器(IIS7.5 - 就像dev)上,404上的任何一个都失败了:
<domain>/Home
<domain>/Home/Index
平原<domain>/
在403上失败。
注意:使用route debugger
时完成所有这些操作我四处乱窜,偶然发现了以下好奇心:
<domain>/Home/Index.cshtml/3
实际上把我带到路线调试页面,声称匹配
controller Home
action Index.cshtml
id 61
更多的播放表明“。cshtml”的位置并不重要,只要它在那里就可以工作。例如<domain>/.cshtml/Index/4
匹配
controller .cshtml
action Index
id 4
为什么需要“。cshtml”字符串,我该怎么办呢?