我对我的一个开发项目有一个奇怪的问题。问题是链接到某个URL“// localhost:62168 / Images / Index”。我有按钮链接到该URL但是当访问“// localhost:62168 / Images /”时,它返回HTTP错误403.14 - 禁止错误。见下图:
奇怪的是,当我准确输入网址(“localhost:62168 / Images / Index”)时,它会正确加载页面。见下图:
我已经在网上进行了大量的研究,我相信这可能是路由问题所以我已经添加了我的“RouteConfig.cs”文件的代码。不幸的是,我是ASP.net和MVC的新手,并且不了解正确的路由程序:
using System.Web.Mvc;
using System.Web.Routing;
namespace ReedHampton
{
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 }
);
}
}
}
我也尝试过在其他在线论坛中提出的其他多种“解决方案”无济于事。其中包括:
我非常感谢任何人都能提供的任何帮助!
答案 0 :(得分:0)
如果在文件系统上找到与URL匹配的内容,IIS将尝试使请求短路。换句话说,我假设您的文档根目录中有一个Images
目录。因此,IIS将尝试命中此目录,而不是将请求传递给ASP.NET机器。由于您已禁用目录浏览,因此您将获得403。
长短,您需要保持ASP.NET MVC路由与文档根目录中的物理路径不同。您可以将Images
目录的名称更改为img
,或将其放在父文件夹中,如默认值/Content/Images
。否则,您需要更改控制器名称或创建到该控制器的自定义路由,而不是/Images
。