HTTP 错误 403.14 - 禁止 asp.net 5 和 MVC 6 iis10

Posted

技术标签:

【中文标题】HTTP 错误 403.14 - 禁止 asp.net 5 和 MVC 6 iis10【英文标题】:HTTP Error 403.14 - Forbidden asp.net 5 & MVC 6 iis10 【发布时间】:2015-08-15 19:29:04 【问题描述】:

我知道这个问题已经被问过并回答了几次,但这些问题略有不同,这些问题的答案并不能解决我的问题。

我有一个 asp.net 5 和 MVC 6 应用程序,它在 IIS Express 中运行良好,并且在 WEB 中自托管。但是,当我发布到文件夹并将 IIS 指向 wwwroot 文件夹时,我收到 HTTP 错误 403.14 - 禁止错误。

我已经尝试过 IISReset 并且我确实有一个默认根。

【问题讨论】:

如果我添加了一个默认文档,看起来请求没有通过 ASP.net 路由,错误就会消失。 您是否安装了 .net 并使用 IIS 在服务器上注册了 asp.net? 服务器目前提供 .net 4.5.1 站点还不错,但感觉 iis 不知道 .net 5.0 IIS 不需要 知道您在项目中使用的框架。确定要加载哪个框架是 AspNet.Loader.dll 的工作。您是否将应用程序池设置为 4.0? 对,有道理,是的,应用程序池设置为 v4.0。 【参考方案1】:

要求

Windows 7 或更高版本 Windows Server 2008 R2 或更高版本 已安装 IIS

程序

首先,确保您的 IIS 中安装了 HTTP 平台处理程序 (x86 / x64)。

将您的应用程序发布到文件系统并获取 \artifacts\bin\MyWebApp\Release\Publish 文件夹的内容并将其复制到您的 IIS 服务器中。

在配置您的应用程序时,将目标指向您复制过来的 wwwroot 文件夹。

现在您需要解锁system.webServer/handlers 部分,该部分可以在服务器节点上的 IIS 管理器中的Configuration Editor 下找到。搜索右侧部分并从右侧操作窗格中将其解锁。

确保应用程序池设置为No Managed Code。 DNX 作为外部进程运行。 IIS 不需要知道它当前正在运行什么。

最后,创建一个web.config,内容如下:

<configuration>
  <system.webServer>
    <handlers>
      <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform processPath="..\approot\web.cmd" arguments="" stdoutLogEnabled="false" stdoutLogFile="..\logs\stdout.log" startupTimeLimit="3600"></httpPlatform>
  </system.webServer>
</configuration>

此时它应该正在运行。


Source

【讨论】:

谢谢,一旦我解决了我的迁移问题并且可以运行我的项目,我会试一试的! +1。在服务器上安装httpPlatformHandler 并将站点物理路径设置为.../wwwroot 后解决(Windows Server 2008 R2、IIS 7.5、MVC 6)

以上是关于HTTP 错误 403.14 - 禁止 asp.net 5 和 MVC 6 iis10的主要内容,如果未能解决你的问题,请参考以下文章

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

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

HTTP 错误 403.14 - 禁止 - 带有 IIS Express 的 MVC 4

HTTP 错误 403.14 - 禁止 - MVC4 .net 4.5 捆绑包

HTTP 错误 403.14 - 禁止 asp.net 5 和 MVC 6 iis10

IIS 7.5、8.0、8.5 HTTP 错误 403.14 - 安装干净的 Windows 后被禁止