错误:VS 2017 ASP.NET 核心应用发布到 IIS [同一台机器]

Bug: VS 2017 ASP.NET Core app published to IIS [same machine]

首先在 VS 2017 中创建一个新项目,模板为 ASP.NET 核心(和个人身份验证)没有 web.config; yet 在将应用程序发布到 C:\inetpub\wwwroot 时添加(在 Window 服务器 2016 的新安装和同一台机器上的 VS 上)。

发布后,无法打开网页,显示“500 - 内部服务器错误”页面。单击左侧面板中的 mySite 后进入 IIS 管理器,尝试单击托管网站中间面板中的任何内容都无法打开,并出现此错误:

如您所见,它没有提供任何有关实际错误的信息。 所以不确定为什么要查找 \?\C: 以获得 web.config 文件?我相信如果我能得到帮助解决这个网页应该加载;因为它确实在开发中加载。如前所述,此问题仅在部署基本 ASP.NET 核心模板时发生;但它也对我以前使用 VS 2015 社区创建的网站做同样的事情移植到 VS 2017(需要 VS 对其进行更新)

web.config文件,仅在发布的应用文件夹中,不在开发项目文件夹中,是:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\Laier-IT.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

此类问题是未针对 .Net Core 配置的 IIS 配置的典型问题。

为了在 IIS 中托管 .Net Core 应用程序,必须安装 .NET Core Windows 服务器托管包。

有关安装 .Net Core Windows 服务器托管捆绑包的详细说明,请查看 Microsoft documentation on installing .Net Core Windows Server Hosting

document 还提供了有关将 .Net Core 部署到 IIS 和其他各种 HTTP 服务器的大量信息。

此外,您需要在应用程序池设置中将 .Net CLR 设置为无托管代码: