Asp.net mvc HTTP错误403.14-禁止将Web服务器配置为不列出内容

Asp.net mvc HTTP错误403.14-禁止将Web服务器配置为不列出内容,asp.net-mvc,iis,Asp.net Mvc,Iis,我已在位置C:\Users\DEVESH\Desktop\Projects\MvcMusicStore-v3.0\MvcMusicStore Completed\MvcMusicStore下载了MVC Music Store ASP.NET应用程序 并在同一位置添加了IIS上的网站。我还授予了IIS_IUSRS权限,但当我运行localhost时,我收到了错误: HTTP错误403.14-禁止将Web服务器配置为不列出此目录的内容。 我已经在谷歌上搜索过了,但还没有找到修复方法。我做错了什么?我

我已在位置C:\Users\DEVESH\Desktop\Projects\MvcMusicStore-v3.0\MvcMusicStore Completed\MvcMusicStore下载了MVC Music Store ASP.NET应用程序 并在同一位置添加了IIS上的网站。我还授予了IIS_IUSRS权限,但当我运行localhost时,我收到了错误:

HTTP错误403.14-禁止将Web服务器配置为不列出此目录的内容。


我已经在谷歌上搜索过了,但还没有找到修复方法。我做错了什么?

我以前也遇到过类似的情况,原因有二; 1.未安装MVC。 2.url路由模块未注册(这因我的工作场所中的计算机而异,原因我无法完全解释-它并非始终在系统级别注册),请尝试在应用程序web.config中注册它:

<system.web> 
      ... 
      <httpModules> 
         ... 
         <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </httpModules>
   </system.web>

... 
... 
编辑:我忘记添加iis 7+的位置:

<system.webServer> 

      <modules> 
         ... 
         <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </modules>
</system.webServer>

... 

我遇到这个错误是因为我在网站应用程序池中配置了错误的.NET版本(v2.0而不是v4.0)。我在WindowsServer2008R2和IIS7上这样修复了它。我确信这些说明也适用于Windows Server 2012和IIS 8:

  • 按键Windows+R打开运行对话框,键入inetmgr,然后单击确定。这将打开IIS管理器
  • 在左树状视图中,找到站点节点并在其下找到默认网站节点(或出现错误消息的站点名称)
  • 右键单击节点并选择管理网站->高级设置…。请注意值应用程序池的名称。关闭此对话框
  • 在左侧的树状视图中,找到并选择节点应用程序池
  • 在右侧的列表中,找到与您在网站设置中注意到的名称相同的应用程序池。右键单击它并选择高级设置…
  • 确保.NET Framework version值为v4.0。单击确定

如果您运行的是一个实际上应该有.NET v2.0的旧站点,那么这不适用:)

如果有人到这里来寻找解决方案,下面是我如何解决的。我错误地删除了服务器(bin目录)中的所有文件,但当我重新复制所有文件时,我丢失了App_global.asax.dll和App_global.asax.compiled文件。因为这些文件丢失,IIS给了我这个错误

403 - Forbidden: Access is denied.

我一添加这些文件,它就开始正常工作。

我通过更正Global.asax文件排列中的一个错误,解决了这个问题。我从另一个项目复制了多个文件,但未能将Global.asax.cs嵌入Global.asax文件中(这两个文件以前存在于同一级别)


我刚刚遇到了同样的问题,但我的修复方法是没有在Global.asax.cs文件中配置路由。我正在使用Bootstrapper和Castle Windsor,因此为了解决此问题,我在Global.asax.cs中添加了以下代码:

public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            Bootstrapper.IncludingOnly.Assembly(Assembly.GetAssembly(typeof(WindsorRegistration)))
                .With
                .Windsor()
                .With
                .StartupTasks()
                .Start();
        }
    }
显然,如果您使用的是基本MVC,则需要引用AppStart文件夹中的RouteConfig文件:

public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }

在我的例子中,我有多个项目,但我没有定义起始项目。 所以这个错误产生了。
定义启动项目后,解决了这个问题。

如果项目是ASP.net MVC项目,它将是关于路由的。 在我的情况下,我更改了默认路由值:

routes.MapRoute(
           "Default",                                              
           "{controller}/{action}/{id}",                           
           new { controller = "Home", action = "Index", id = "" }  
       );
我不小心将代码更改为:

routes.MapRoute(
               "Default",                                              
               "{controller}/{action}/{JobID}",                           
               new { controller = "Home", action = "Index", id = "" }  
           );

也就是说,我只将“id”改为“JobId”,无法找到默认路由。

在我的情况下,ASP.NET未在服务器上注册。尝试在命令提示符下执行此命令:

Windows 32位

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir 
Windows 64位

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir 

同时检查此项:

出现此问题的原因是网站未启用目录浏览功能,并且未配置默认文档。要解决此问题,请使用以下方法之一:

  • 方法1:在IIS中启用目录浏览功能(推荐)
  • 方法2:添加默认文档方法
  • 方法3:在IIS Express中启用目录浏览功能

链接:

当应用程序无法启动时,会发生此错误。
因此,原因可能是任何阻止应用程序启动的因素

  • 错误的连接字符串
  • 错误的IIS目录权限
  • 应用程序_Start()函数中引发异常
  • IOC容器初始化错误
  • IIS ASP.NET注册错误
  • bin文件夹中缺少DLL
  • 等等

在Visual Studio中创建空的ASP.Net应用程序后,我出现了此错误。我一向主解决方案添加index.html文件,它就工作了。因此,在我的例子中,我只需要在项目文件夹的根目录中添加一个文件。

我在IIS 7上使用ASP.NET 4.5 MVC应用程序。我的解决方案是将runallmanagedmodule设置为true

<system.webServer>
            <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

或者,如果您有其他模块,您可能希望将它们添加到模块标记中

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
             <add name="ErrorLogWeb" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
             ...
    </modules>
</system.webServer>


在我的案例中,默认情况下没有创建index.aspx文件,在添加另一个web表单后,我没有将表单设置为起始页…在将页面设置为起始页后,我的问题得到解决。 因此,右键单击web表单并将表单设置为起始页
:)

在IIS管理器中,当ASP.NET MVC站点指向错误目录时,可能会发生此错误

在我的例子中,我无意中让站点指向解决方案目录,而不是子项目目录。也就是说,我将站点的
物理路径设置为

C:\dev\MySolution

而不是