【问题标题】:ASP.net "{Controller}/" returning 403.14 errorASP.net "{Controller}/" 返回 403.14 错误
【发布时间】:2017-12-09 11:39:42
【问题描述】:

我在开发中的一个项目时遇到了一个奇怪的问题。问题在于指向某个 URL“//localhost:62168/Images/Index”的链接。我有链接到该 URL 的按钮,但是当访问“//localhost:62168/Images/”时,它返回 HTTP 错误 403.14 - 禁止错误。见下图:

localhost//Images/

奇怪的是,当我准确输入 URL(“localhost:62168/Images/Index”)时,它会正确加载页面。见下图:

localhost/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 }
            );
        }
    }
}

我还尝试了其他在线论坛中提供的多种其他“解决方案”,但均无济于事。其中包括:

  1. 在 web.config 中添加“directoryBrowse enabled="true"”
  2. 在命令提示符中运行“C:\windows\Microsoft.NET\Framework64\v4.0.30319> aspnet_regiis.exe -i”
  3. 通过 IIS Express 并注册 IIS Express 和 ASP.Net

如果有人能提供任何帮助,我将不胜感激!

【问题讨论】:

    标签: asp.net asp.net-mvc iis routing http-error


    【解决方案1】:

    如果 IIS 在文件系统上找到与 URL 匹配的内容,它将尝试使请求短路。换句话说,我假设您的文档根目录中有一个Images 目录。因此,IIS 将尝试访问该目录,而不是将请求传递给 ASP.NET 机器。由于您已禁用目录浏览,因此您会收到 403。

    总之,您需要使您的 ASP.NET MVC 路由与您在文档根目录中的物理路由保持唯一性。您可以将Images 目录的名称更改为img 之类的名称,或者将其放在父文件夹中,例如默认的/Content/Images。否则,您将需要更改控制器名称或创建到该控制器的自定义路由,而不是称为 /Images

    【讨论】:

    • 这正是问题所在。我存储图像的文件夹称为“图像”。更改该文件夹的名称解决了我的问题!另外,我阅读了您添加图片上传的指南,它非常有帮助,非常感谢!!!!
    猜你喜欢
    • 1970-01-01
    • 2015-04-18
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多