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

时间:2013-03-27 21:17:37

标签: asp.net-mvc-3 google-chrome iis-7 visual-studio-2012 visual-studio-debugging

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服务器上的“创建虚拟目录”按钮时,它响应正常,但该站点永远不会在池中创建。任何帮助表示赞赏。

  • 操作系统架构 Windows x64
  • VS 2012 Ultimate
  • IIS v7

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

4 个答案:

答案 0 :(得分:3)

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

如果网站没有正确的路线,则会显示不良网页代码 403.14 。无法从未完成必要权限的目录中显示页面。当路由不正确时,它默认重定向到服务器保护的目录。

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

  • ASP.NET MVC on IIS 7.5
  • ASP.NET MVC 3: A default document is not configured

     <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>-->
    

Ocurrs when Routing is wrong and this part is enabled in *Web.config **<system.WebServer>*** section

<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>

Ocurrs when Routing is wrong and this part is enabled in *Web.config **<system.WebServer>*** section

我的贡献    如果有人是ReSharper Refactoring功能或任何其他重构工具的助手,请注意不加选择地使用它,因为它会意外地改变事物。不要误解我的话,这是一个迷人的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
        );

    }

答案 1 :(得分:1)

直到我意识到我已经在Appplication_OnStart上将该成员标记为静态时,我才对这个错误感到震惊。

这错误地发生在我没有压制的代码分析警告上,所以无头,因为我遵循了CA1822警告的最佳做法。

 protected static void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }

答案 2 :(得分:0)

此错误的另一种方法:如果将其放在global.asax中:

     protected void Application_OnStart()
    {

    }

你会收到403.1错误。

答案 3 :(得分:0)

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

的DLL

解释:虽然很多论坛我发现403的一个可能原因是dll相关。我最终检查了那个区域,并注意到我错过了很多dll。我复制了所有的dll,网站开始正常工作。我相信这些dll不见了,因为他们没有设置复制本地,所以他们没有在网站上发布(虽然我还没有证实这一点)(也没有缩小&#39;哪些&#39;缺少的dll是问题),但认为发布可能会有所帮助。