我已经在位置C下载了MVC音乐商店ASP.NET应用程序:\ Users \ DEVESH \ Desktop \ Projects \ MvcMusicStore-v3.0 \ MvcMusicStore-Completed \ MvcMusicStore 并在同一位置的IIS上添加了网站。我也允许IIS_IUSRS,但是当我运行localhost时,我收到错误:
HTTP错误403.14 - 禁止将Web服务器配置为不列出此目录的内容。
我用谷歌搜索过,但还没有找到解决办法。我做错了什么?
答案 0 :(得分:43)
我遇到了这个错误,因为我在网站应用程序池上配置了错误的.NET版本(v2.0而不是v4.0)。我在Windows Server 2008 R2和IIS 7上以这种方式修复它。我非常确定这些说明也适用于Windows Server 2012和IIS 8:
如果你正在运行一个实际应该拥有.NET v2.0的旧网站,那么这不适用:)
答案 1 :(得分:16)
在我的情况下,ASP.NET未在服务器上注册。尝试在命令提示符下执行此操作:
Windows 32位
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir
Windows 64位
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
答案 2 :(得分:10)
如果有人到达这里寻找解决方案,以下是我如何解决它。我错误地删除了我的服务器(bin目录)中的所有文件,但当我重新复制所有文件时,我错过了App_global.asax.dll和App_global.asax.compiled文件。因为这些文件丢失了IIS给了我这个错误
403 - Forbidden: Access is denied.
一旦我添加了这些文件,它就开始正常工作了。
答案 3 :(得分:7)
答案 4 :(得分:5)
我之前遇到过类似的事情有两个原因; 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>
答案 5 :(得分:3)
我在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>
答案 6 :(得分:3)
以我为例,当我浏览到 site5.com 我收到以下错误。
HTTP错误403.14-禁止 Web服务器被配置为不列出此目录的内容。
最可能的原因: 未为请求的URL配置默认文档,并且服务器上未启用目录浏览。
然后当我浏览到
site5.com/home/index
我遇到了
HTTP错误404.0-找不到 您要查找的资源已被删除,名称已更改或暂时不可用。
最可能的原因: 指定的目录或文件在Web服务器上不存在。 该URL包含印刷错误。 自定义过滤器或模块(例如URLScan)会限制对文件的访问。
我所做的全部工作都在IIS ASP.NET 4.8中安装了该功能,如下所示。
答案 7 :(得分:2)
当应用程序无法启动时会发生此错误 因此,原因可能是阻止您的应用程序启动的任何原因。
答案 8 :(得分:2)
在我的情况下,我有多个项目,但我没有定义启动项目。 所以这个错误正在产生。 定义startUp项目后解决了问题。
答案 9 :(得分:2)
在IIS管理器中,ASP.NET MVC站点指向错误的目录时,可能会发生此错误。
在我的情况下,我无意中将站点指向解决方案目录而不是子项目目录。也就是说,我将网站Physical path
设置为
C:\dev\MySolution
而不是
C:\dev\MySolution\MyProject
。
解决此问题的具体步骤:
Physical path
更改为项目目录。 答案 10 :(得分:2)
我遇到了同样的问题,但我的修复是没有在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);
}
}
答案 11 :(得分:1)
如果项目是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”,无法找到默认路线。
答案 12 :(得分:1)
在Visual Studio中创建一个空的ASP.Net应用程序后出现此错误。一旦我将一个文件index.html添加到主解决方案中,它就可以工作了。所以在我的情况下,我只需要将一个文件添加到项目文件夹的根目录。
答案 13 :(得分:0)
在我的情况下,默认情况下没有创建index.aspx文件,在添加其他网页表单后,我没有将表单设置为起始页面...将页面设置为起始页面后,我的问题得到解决。 因此,右键单击Web表单并将表单设置为起始页面 :)
答案 14 :(得分:0)
就我而言,我必须在我的发布配置文件中禁用“从App_Data文件夹中排除文件”,以使用我的XML文档(XmlDocument.xml)部署App_Data文件夹。那摆脱了403.14。
答案 15 :(得分:0)
在我的情况下: 1.在IIS管理器的左侧树中,左键单击计算机名,在右侧对话框中单击ISAPI和CGT限制,在打开的对话框中,选择ASP.NET v4.0.30319并选择启用。有两个ASP.Net v4.0,一个用于32位,另一个用于64位。根据您的操作系统位选择。 2.在左侧树选择应用程序池中,在右侧对话框中,选择您的网站使用的应用程序池。双击该池,在打开的对话框中,.net framke item select .net framework v.4.0.30319。和pipe..item选择积分。 也许上面有一些错误的翻译,因为我的操作系统不是英文版。
答案 16 :(得分:0)
IUSR permissions
在文件夹上使用将是一些解决方案。
答案 17 :(得分:0)
如果有人碰到了MVC以外的其他项目,则该事件:
我的项目是WCF项目,它运行.svc
个文件-没有默认文档。结果,我在myhost.com/
处收到403.14错误,但是我从web.config文件中添加了一个baseAddress
路径(例如myhost.com/mybaseaddresspath.svc
时,我得到了一个网页。
答案 18 :(得分:0)
我的同事做了URL Rewrite rule,将所有URL简化为StaticFileHandler;映射到我的应用程序物理文件夹根目录中的文件路径。
(即过度攻击性的URL重写意味着我的控制器/操作不起作用)
检查应用程序的URL重写规则,以确认它们是否达到了您的期望。
答案 19 :(得分:0)
答案 20 :(得分:-1)
同时检查:
出现此问题的原因是网站未启用“目录浏览”功能,并且未配置默认文档。要解决此问题,请使用以下方法之一:
答案 21 :(得分:-1)
我遇到了类似的问题。我的控制器名称是文档。它管理上传的文档。它工作正常,并在代码完成后开始显示此错误。我犯的错误是-创建了一个文件夹“ Documents”来保存上传的文件。因此,控制器名称和文件夹名称相同-造成了问题。