.NET Core 托管捆绑包

.NET Core 托管捆绑包是 .NET Core 运行时和 ASP.NET Core 模块的安装程序。 该捆绑包允许 ASP.NET Core 应用通过 IIS 运行。

安装 .NET Core 托管捆绑包

重要

如果在 IIS 之前安装了托管捆绑包,则必须修复捆绑包安装。 在安装 IIS 后再次运行托管捆绑包安装程序。

如果在安装 64 位 (x64) 版本的 .NET Core 之后安装了 Hosting Bundle,则可能看上去缺少 SDK(未检测到 .NET Core SDK)。 若要解决此问题,请参阅 ASP.NET Core 项目故障排除和调试

公告存储库上报告了重大更改和安全建议。 可以通过选择“标签”筛选器将公告限制为特定版本。

直接下载

使用以下链接下载安装程序:

Visual C++ 可再发行程序包要求

在较旧版本的 Windows(例如 Windows Server 2012 R2)上,安装 Visual Studio C++ 2015、2017、2019 可再发行程序包。 否则,Windows 事件日志中令人困惑的错误消息会报告 The data is the error.

当前 x64 VS C++ 可再发行程序包当前 x86 VS C++ 可再发行程序包

先前版本的安装程序

若要获取先前版本的安装程序:

  1. 导航到 .NET Core 页面。
  2. 选择所需的 .NET Core 版本。
  3. 在“运行应用 - 运行时”列中,查找所需的 .NET Core 运行时版本的那一行。
  4. 使用“托管捆绑包”链接下载安装程序。

警告

某些安装程序包含已到达其生命周期结束 (EOL) 且不再受 Microsoft 支持的发行版本。 有关详细信息,请参阅支持策略

ASP.NET Core 模块.NET 的支持版本向前和向后兼容。

选项

  1. 通过管理员命令行界面运行安装程序时,以下参数可用:

    • OPT_NO_ANCM=1:跳过安装 ASP.NET Core 模块。
    • OPT_NO_RUNTIME=1:跳过安装 .NET Core 运行时。 当服务器仅承载独立部署 (SCD) 时使用。
    • OPT_NO_SHAREDFX=1:跳过安装 ASP.NET 共享框架(ASP.NET 运行时)。 当服务器仅承载独立部署 (SCD) 时使用。
    • OPT_NO_X86=1:跳过安装 x86 运行时。 确定不会托管 32 位应用时,请使用此参数。 如果有可能会同时托管 32 位和 64 位应用,请勿使用此参数,并安装两个运行时。
    • OPT_NO_SHARED_CONFIG_CHECK=1:当共享配置 (applicationHost.config) 与 IIS 安装位于同一台计算机上时,禁止对使用的是否是 IIS 共享配置进行检查。 仅适用于 ASP.NET Core 2.2 或更高版本托管捆绑程序安装程序。 有关详细信息,请参阅高级配置

注意

有关 IIS 共享配置的信息,请参阅使用 IIS 共享配置的 ASP.NET Core 模块

注意

在运行设置了选项的托管捆绑安装程序时,每个选项的值将保存在注册表中。 从同一个 Major.Minor 版本带进行的后续安装使用相同的选项,除非从命令行显式传递了另一组选项。 如果第一次安装托管捆绑包时未传递任何选项,则每个选项将获取写入注册表的默认值 0。 值为 0 表示该选项已关闭,这意味着用户未选择退出给定的组件。

重新启动 IIS

安装托管捆绑包后,可能需要手动重新启动 IIS。 例如,在运行 IIS 工作进程的路径上可能不存在 dotnet CLI 工具(命令)。

若要手动重启 IIS,请停止 Windows 进程激活服务 (WAS),然后重新启动 World Wide Web 发布服务 (W3SVC) 和所有相关服务。 在高级命令 shell 中执行以下命令:

net stop was /y
net start w3svc

模块版本和托管捆绑安装程序日志

若要确定已安装 ASP.NET Core 模块的版本,请执行以下操作:

  1. 在托管系统上,导航到 %PROGRAMFILES%\IIS\Asp.Net Core Module\V2
  2. 找到 aspnetcorev2.dll 文件。
  3. 右键单击该文件,然后从上下文菜单中选择“属性”。
  4. 选择“详细信息”选项卡。“文件版本”和“产品版本”表示模块的已安装版本。

可在 C:\Users\%UserName%\AppData\Local\Temp 中找到模块的托管捆绑安装程序日志。 该文件的名称为 dd_DotNetCoreWinSvrHosting__{TIMESTAMP}_000_AspNetCoreModule_x64.log,其中占位符 {TIMESTAMP} 为文件的时间戳。