26

我们开发了一个 asp.net mvc 4 应用程序。在 vs 2012 中,这项工作正常。我们发布了这个 Web 应用程序并将其放在 iis 7.5 上,但是当我们想通过 iis 浏览 Web 应用程序时,会显示以下错误消息:

HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.

我们认为这个错误可能来自这个 Web 应用程序,但我们创建了另一个 asp.net mvc 4 应用程序(没有任何更改并使用 Internet 模板)并将其放在 iis 上,然后再次向我们显示顶部错误。

我们在互联网上搜索并看到更多人认为这个问题是为他们发生的。例如在这个:403 - Forbidden on basic MVC 3 deploy on iis7.5链接介绍了解决这个问题的想法,并假设这个问题已经为他们的人解决了,但这个解决方案对我不起作用。我们说的另一个链接包括:这个 https://stackoverflow.com/questions/6885509/http-error-403-14-forbidden 和这个:http: //yassershaikh.com/http-error-403-14-forbidden- the-web-server-is-configured-to-not-list-the-contents-of-this-directory/但这个解决方案对我不起作用

解决这个问题的任何想法?

4

13 回答 13

42

在安装 IIS 7.5、Visual Studio 等之后,我在一台全新的机器上遇到了同样的问题。我最终刷新了 ASP.NET 注册并且它工作正常。

C:\windows\Microsoft.NET\Framework64\v4.0.30319> .\aspnet_regiis.exe -ir C:\windows\Microsoft.NET\Framework64\v4.0.30319> iisreset

高温高压

于 2013-04-10T20:37:54.233 回答
12

首先,您应该通过在命令提示符中执行以下命令来注册 IIS 框架

C:\windows\Microsoft.NET\Framework\v4.0.30319> aspnet_regiis.exe -i C:\windows\Microsoft.NET\Framework64\v4.0.30319> aspnet_regiis.exe -i

如果您仍然收到错误消息


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


那么您可能需要更新 IIS,当 URL 不以句点结尾时使用该更新

请访问以下链接以获取更新 http://support.microsoft.com/kb/980368

有一个更新可用,使某些 IIS 7.0 或 IIS 7.5 处理程序能够处理 URL 不以句点结尾的请求

于 2013-12-12T08:02:38.010 回答
8

IIS 的更新解决了我的问题,可以从以下链接下载:http: //support.microsoft.com/kb/980368

于 2013-06-18T16:27:53.520 回答
7

这发生在我身上是因为我错误地运行了一个不相关的搜索并替换了在 Global.asax.cs 中重命名了 'id' 参数(第 3 行)的内容:

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

……换个名字。我立即开始在本地和远程获取 403.14。将其更改回“id”修复了它。

于 2013-06-07T15:38:31.810 回答
5

在 Windows 中打开提升的命令提示符(以管理员身份运行命令提示符)。

aspnet_regiis -i并在 .Net Framework 和 .Net Framework64 位置运行命令。如下所示,这里i的参数表示安装 ASP.NET 版本 4。第一个命令用于 32 位,第二个命令用于安装 64 位版本。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -i

截图命令提示符

这些命令用于向 Internet 信息服务 (IIS) 服务器注册 ASP.NET 应用程序。

于 2015-06-03T12:53:00.833 回答
3

也许...如果您碰巧使用发布向导(就像我一样)并选择“发布期间预编译”复选框(就像我一样)并看到相同的症状...

是的,我打了自己的头,但取消选中此框后,看似无关的设置,所有描述的症状都消失了。

希望这可以解决一些人。

于 2014-04-09T18:45:24.480 回答
2

听起来应用程序配置不正确。确保已部署 web.config 以及所有应用程序文件,并且应用程序池已正确配置。

如果您直接访问运行 IIS 的机器,您可能会收到更详细的错误消息。

于 2013-03-10T14:18:28.910 回答
2

如果我有 50 个代表,我会评论 @Seth 的回答。这不仅仅是一个搜索和替换问题。Visual Studio 2012 中有一个重构 --> 重命名错误,它错误地重命名了我的 RouteConfig.cs 中 url 参数的文字字符串值内的“id”。当然,它已解决为“无法修复”,因此请注意。

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

改为

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{replaced_text}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
于 2013-12-18T16:25:36.240 回答
1

就我而言,问题出在物理路径设置上。

它指向 C:\inetpub\wwwroot\MySite

但导入的站点实际上位于 C:\inetpub\wwwroot\MySite\Default Web Site\MySite

我通过MySite -> Edit Site -> Basic Settings更改了 iis 中的路径, 然后我开始参加比赛。

于 2014-12-04T02:16:07.603 回答
0

从我的 web.config 复制一个工作 ConnectionString 到一个较新的项目以替换旧项目上的 ConnectionString 然后开始在 localdb 上进行测试并收到错误后,出现了相同的错误(403.14)。注意:我从新的 web.config 复制到旧的 web.config,只复制了连接字符串的连接字符串部分,并且没有对旧项目的名称或提供者名称进行任何更改。经过几个小时的研究,终于进入旧项目(在 VS 2012 的设计选项卡上)的一个附加 sqldatasources 并重新配置了 sqldatasource(单击“配置数据源”)并在第一个下拉框中选择了关联的名称使用最近复制的 ConnectionStrings 之一。这就是一切,在重新配置 ConnectionString 后它开始工作。

于 2015-01-27T18:10:36.453 回答
0

您需要更改站点的应用程序池:

  • 转到“操作”面板
  • 然后选择“基本设置”
  • 在“应用程序池”上选择“选择...”
  • 最后ASP.NET v4.0
于 2016-02-26T16:34:32.733 回答
0

我遇到了同样的错误,但上述解决方案都不适合我,最终我的开发机器上安装了 .Net 4.6,但该项目的目标是 .net 4.5。我不明白为什么会发生这种情况,但是这件事对我有用。

于 2016-04-02T19:02:21.580 回答
0

在我的情况下,默认网站被映射到不同的应用程序。当我试图在默认网站中访问我的应用程序时,我收到了 403.14 错误。

解决方案是将默认网站重新映射到默认 C:\inetpub\wwwroot。

于 2016-05-10T14:13:57.157 回答