Asp.net mvc 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服务器配置为不列出此目录的内容。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服务器配置为不列出此目录的内容。 我已经在谷歌上搜索过了,但还没有找到修复方法。我做错了什么?我
我已经在谷歌上搜索过了,但还没有找到修复方法。我做错了什么?我以前也遇到过类似的情况,原因有二; 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
- 等等
<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
而不是