【问题标题】:Bug: VS 2017 ASP.NET Core app published to IIS [same machine]错误:VS 2017 ASP.NET Core 应用程序发布到 IIS [同一台机器]
【发布时间】:2017-06-12 07:04:56
【问题描述】:

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

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

您还可以看到,它没有提供有关实际错误的信息。 所以不知道为什么它在寻找\\?\C: 的 web.config 文件?我相信如果我能得到帮助解决这个网页应该加载;因为它在开发中加载。如前所述,此问题仅在部署基本 ASP.NET Core 模板时发生;但它也与我以前使用 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>

【问题讨论】:

    标签: visual-studio-2017 windows-server-2016 iis-10 asp.net-core-1.1


    【解决方案1】:

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

    为了在 IIS 中托管 .Net Core 应用程序,需要安装 .NET Core Windows Server Hosting 捆绑包。

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

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

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

    【讨论】:

    • 典型?因为我在使用 VS 2015 社区时从未遇到过这个问题。好的,尝试加载“.NET Core Windows Server Hosting bundle”并收到 Microsoft .NET Core 1.0.4 和 1.1.1 Windows Server Hosting 的安装错误“已安装此产品的另一个版本。”
    • 链接文档提供了一些很好的故障排除信息。你能向我们展示你的 web.config 文件的内容吗?你能从命令行运行应用程序吗? dotnet myapplication.dll?
    • 您是否将应用程序池的 CLR 版本更改为无托管代码?
    • 我用 web.config 脚本更新了问题。我还尝试了 dotnet cmd 命令并收到“现在正在侦听:localhost:5000 应用程序已启动。按 Ctrl+C 关闭。”然后我在浏览器中输入 localhost:5000。这工作正常,但当然这是本地的,而不是通过 IIS 服务从网络外部调用。
    • .Net CLR 版本用于实例化正确的 .Net 运行时 - 但是在运行 .Net Core 网站时,我们只是使用 IIS 通过 dotnet 可执行文件代理到 Kestrel Webserver。我不确定为什么将此设置保留为 .Net CLR 版本会导致错误。
    最近更新 更多