.NET Core发布到IIS问题 - 403.14

Bea*_*ore 10 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服务器配置为不列出此目录的内容.

Microsoft的这篇文章中,它只提到通过为站点选择错误的目录来创建403.14 Forbidden错误......但事实并非如此.

但是,VS并不会愚弄web.config.并且没有选择"复制到服务器始终"或"内容"(在DDL中),两个选项都缺失.

aho*_*try 6

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

在此处输入图片说明

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

"publishOptions": {
  "include": [
    "wwwroot",
    "Views",
    "appsettings.json",
    "web.config"
  ]
}
Run Code Online (Sandbox Code Playgroud)

  • 好的,我如何确定在应用程序池上设置的服务帐户/用户凭据是否有权运行/访问应用程序?它正在使用 ApplicationPoolIdentity。仅供参考,此服务器上还有 30 多个其他站点运行良好。 (2认同)
  • 我自己又遇到了 403 错误,结果我发布到了错误的文件夹。所以一个空文件夹会产生 403 错误。仅供参考 (2认同)

小智 6

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

<IsTransformWebConfigDisabled>false</IsTransformWebConfigDisabled>
Run Code Online (Sandbox Code Playgroud)