.NET Core发布到IIS问题 - 403.14

时间:2016-08-30 15:14:47

标签: c# asp.net iis asp.net-core

我正在尝试将Core 1.0应用程序发布到在IIS Express中本地运行良好的2012R2框。

  • 在服务器上安装了DotNetCore.1.0.0-WindowsHosting.exe
  • 已安装httpPlatformHandler_amd64.msi
  • 将应用程序池设置为“无托管代码”
  • 使用“Web Deploy”
  • 从VS发布
  • 撰写本文时的最新VS核心工具

我得到的只是:

  

HTTP错误403.14 - 禁止

     

Web服务器配置为不列出其内容   。目录

this article from Microsoft中,它只提到通过为网站选择错误的目录来创建403.14 Forbidden错误......但情况并非如此。

但是,VS并不会破坏web.config。并且没有选择“始终复制到服务器”或“内容”(在DDL中),两种选择都缺失。

2 个答案:

答案 0 :(得分:3)

确保应用程序池上设置的服务帐户/用户凭据有权运行/访问该应用。这是我几次部署到IIS时的问题。

enter image description here

至于包含web.config,请确保在 project.json 文件中包含以下代码。只需指定要包含在发布中的内容。

"publishOptions": {
  "include": [
    "wwwroot",
    "Views",
    "appsettings.json",
    "web.config"
  ]
}

答案 1 :(得分:3)

检查应用程序文件夹中是否有web.config。如果IIS文件夹中没有web.config,则它不知道它是ASP.NET Core应用程序,它认为您正在尝试在该文件夹中列出文件。 因此,如果在项目配置中将IsTransformWebConfigDisabled属性设置为true,则在构建Web.config文件时不会在发布文件夹中生成该文件。 因此,在YourProjectName.csproj文件中将IsTransformWebConfigDisabled属性更改为false,如下所示:-

<IsTransformWebConfigDisabled>false</IsTransformWebConfigDisabled>