1

IIS 7 中的 ASP MVC 3 和 HTTP 错误 403.14 - 禁止

我现在一直在ASP.NET MVC 3中工作,但是一些事情默默地发生了,我无法意识到它出了什么问题。该项目突然停止使用IIS,在调试模式下 VS 2012 不再打开浏览器窗口(Google Chrome v.25 beta,Mozilla Firefox 19.0)。我访问了几个引用的链接,但解决方案不包含。当我按下在 IIS 本地 Web 服务器上创建虚拟目录的按钮时,它会响应 OK,但从未在池中创建该站点。任何帮助表示赞赏。

  • 操作系统架构是Windows x64
  • VS 2012 终极版
  • IIS v7

我已经尝试过这些建议但没有成功:

4

4 回答 4

3

找到解决方案。我希望这有助于他人堆叠。以前的所有文章都很有用,帮助我更好地理解 IIS 工程。

如果站点没有正确的路由,它将显示不受欢迎的页面代码403.14。无法从没有获得必要权限的目录显示页面。当路由不正确时,它默认重定向到受服务器保护的目录。

我之前列出的这篇文章是最完整的。在 VS 2010/2012 安装过程之后部署第一个项目时出现此错误。所以,不要担心,它会发生。

  • IIS 7.5 上的 ASP.NET MVC
  • ASP.NET MVC 3:未配置默认文档

     <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true"></modules> <!--THIS ONE -->
    <!--<modules>
      <remove name="UrlRoutingModule-4.0" />
      <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
      --><!-- any other modules you want to run in MVC e.g. FormsAuthentication, Roles etc. --><!--
    </modules>-->
    

当路由错误并且这部分在 *Web.config **<system.WebServer>*** 部分中启用时发生

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
  <!--  <modules runAllManagedModulesForAllRequests="true"></modules> -->

<modules> <!--THIS ONE -->
      <remove name="UrlRoutingModule-4.0" />
      <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
      <!-- any other modules you want to run in MVC e.g. FormsAuthentication, Roles etc. -->
    </modules>
  </system.webServer>

当路由错误并且这部分在 *Web.config **<system.WebServer>*** 部分中启用时发生

我的贡献: 如果有人是 ReSharper 重构功能或任何其他重构工具的追随者,请注意不要随意使用它,因为它会出人意料地改变事情。不要误解我的话,它是一个迷人的 VS 插件,我在日常工作中使用它。但在我的情况下,它修改了 Global.asax.cs 文件的 RegisterRoutes (...) 中的路由参数,当然站点无法正确加载(甚至主页也不行)。

这是发生了什么{ id }:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL ORIGINAL VALUES
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

通过这个地狱{ referenceId }:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{referenceId}", // URL MODIFIED VALUES
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }
于 2013-03-28T15:52:29.703 回答
1

一直在用这个错误敲我的头,直到我意识到我已在 Appplication_OnStart 上将该成员标记为静态。

这错误地发生在我没有抑制的代码分析警告中,所以我没有头绪,我遵循了 CA1822 警告的最佳实践。

 protected static void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
于 2014-12-06T11:14:31.090 回答
0

Another way for this error : If you put that in your global.asax :

     protected void Application_OnStart()
    {

    }

You'll get the 403.1 error.

于 2013-06-11T15:30:37.897 回答
0

如果有人仍在查看 MVC 和 Web 部署的任何 403 错误,并且之前的答案都没有帮助(就像我一样),那么我发现还有一件事要看。

dll

解释:虽然我在很多论坛上发现 403 的一个可能原因是 dll 相关的。我最终检查了那个区域,并注意到我丢失了很多 dll。我复制了所有的 dll,网站开始正常工作。我相信这些 dll 丢失了,因为它们没有设置为复制本地,所以它们没有与网站一起发布(尽管我没有确认这一点)(也没有缩小“哪个”丢失的 dll 是问题的范围),但认为它可以有助于发布。

于 2015-04-01T22:11:53.450 回答