解决 Windows Server 2016 上 ASP.NET 的 403.14 错误

Posted

技术标签:

【中文标题】解决 Windows Server 2016 上 ASP.NET 的 403.14 错误【英文标题】:Resolving the 403.14 error for ASP.NET on Windows Server 2016 【发布时间】:2017-08-14 20:26:40 【问题描述】:

我正在使用全新的 Windows Server 2016 虚拟机,并使用 Visual Studio 2017 中的 Web Deploy 在其上部署了 ASP.NET MVC Web API 应用程序。但是,我发现当我在本地浏览到应用程序时,我收到了一个包含以下错误的页面:

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

在网上做了一些研究后,我发现这是一个常见的问题,并且已经给出了许多解决方案。例如,请参阅以下内容:

ASP.NET MVC on IIS 7.5

MVC4 HTTP Error 403.14 - Forbidden

HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents

ASP MVC in IIS 7 results in: HTTP Error 403.14 - Forbidden

HTTP Error 403.14 - Forbidden - MVC4 .net 4.5 bundles

HTTP Error 403.14 - Forbidden. Asp.NET MVC

HTTP Error 403.14 - Forbidden IIS Error for ASP.Net MVC 4 Application

但是,我尝试的所有解决方案都没有解决我的 Windows Server 2016 实例上的这个问题。

【问题讨论】:

【参考方案1】:

这是对我有用的解决方案:

很多人建议运行以下命令在机器上注册 ASP.NET:

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

事实证明,在 Windows Server 2016 中,您需要转到 添加角色和功能向导 来执行此操作(搜索“打开或关闭 Windows 功能 " 在 Windows 搜索中)。在向导中,单击“下一步”,直到您进入“服务器角色”页面。向下滚动并打开以下节点:

Web 服务器 (IIS) > Web 服务器 > 应用程序开发

在“ASP.NET 4.6”旁边打勾,点击下一步,按照提示进行安装。

安装 ASP.NET 4.6 后发现 403.14 问题已解决。

【讨论】:

【参考方案2】:

我从 Modules 中删除了 Rewrite module 并且现在运行良好。

【讨论】:

【参考方案3】:

注意:引用不存在的驱动器可能会导致此问题!我们引用了 E:\Log4Net,但在新主机上,此驱动器不存在!

【讨论】:

以上是关于解决 Windows Server 2016 上 ASP.NET 的 403.14 错误的主要内容,如果未能解决你的问题,请参考以下文章

Windows Server2016+SqlServer2016搭建AlwaysOn集群

Windows Server2016+SqlServer2016搭建AlwaysOn集群

window server2016添加角色与服务向导中服务器的选择出现卡死,该怎么解决?

Windows Server 2016- Windows Server 2016 上 HYPER-V 中的新增功能

Windows Server 2016 Hyper-V简介与配置

Windows server 2016 / Windows 10关于域管理员帐号权限不足的问题