【问题标题】:.NET Core Hosting Bundle.NET Core 托管包
【发布时间】:2018-10-07 01:04:53
【问题描述】:

据我了解Docs.NET Core Hosting Bundle 安装了.NET Core Runtime.NET Core LibraryASP.NET Core Module

似乎.NET Core Runtime2.0.62.0.7、...)的每个版本都有一个 Bundle。

如果我的应用程序具有独立部署,我仍然需要 ASP.NET Core 模块。但是,我看不到模块可以在没有完整捆绑包的情况下单独下载。有地方可以下载吗?

如果没有:

如果我仍然需要在我的 IIS 服务器上安装整个 .net core sdk/runtime bundle,那么拥有一个独立的应用程序有什么意义?

【问题讨论】:

  • 独立应用程序的重点是针对 IIS 之外的情况。不幸的是,IIS 就是这样,它需要一个 HttpModule 和运行时才能托管一个 ASP.NET Core 应用程序。但是,到目前为止,IIS 并不是托管应用程序的唯一方式。
  • @ChrisPratt 感谢您的回答。我知道.net 核心是为很多平台制作的。然而,在我看来,独立应用程序对于托管在 IIS 中的应用程序也很有意义。我在一家大公司工作,一切都进展得很慢。因此,在服务器上拥有最新的 .net 核心运行时是我无法产生太大影响的东西,但是使用自托管应用程序我会更容易控制。

标签: asp.net-core .net-core asp.net-core-2.0


【解决方案1】:

查看有关此主题的docs

ASP.NET Core 模块是 HttpPlatformHandler 的一个分支,它经过修改可以与 ASP.NET Core 的新系统一起使用,并且以前用于托管 ASP.NET 应用程序。 related GitHub issue

IIS 需要它来在第一个请求到达时启动您的 ASP.NET Core 应用程序并将请求路由到 ASP.NET Core 应用程序。

使用 .NET Core(以及因此的 ASP.NET Core),ASP.NET Core 带有自己的 http 服务器(以前这只能通过 Http.sys 又名 WebListener 自托管,即通常用于 WCF 服务)。它还将几个标头重定向到应用程序,因为带有 ASP.NET Core 的 IIS 仅充当反向代理。

换句话说,ASP.NET Core 托管在 IIS 进程之外,并且 ASP.NET Core 模块在那里与它通信并启动外部进程(如果还没有的话)。这也意味着,托管在 IIS 中的 ASP.NET Core 应用程序受 IIS 生命周期的影响(即 IIS 可能并且将在空闲时停止您的应用程序 - 当您自托管应用程序或使用类似 nginx 的东西作为反向时,不会发生这种情况代理)。

借助 ASP.NET Core 2.1 preview1,还可以在 IIS 进程 (w3wp.exe) 中托管 ASP.NET Core 应用程序,以提高请求吞吐量。有关这方面的更多信息,请阅读ASP.NET Core 2.1.0-preview1: Improvements to IIS hosting

【讨论】:

【解决方案2】:

没有用于 IIS 的 ASP.NET Core 模块(“ANCM”)的官方下载,但可以通过调用托管包安装程序以 OPT_INSTALL_LTS_REDIST=0 OPT_INSTALL_FTS_REDIST=0 作为参数来安装它(至少对于 1.0-2.0 安装)。

拥有一个独立的应用程序有什么意义,如果我仍然 需要在我的 IIS 上安装整个 .net core sdk/runtime bundle 服务器?

除了安装程序只能安装 ANCM,不要忘记 IIS 不是 ASP.NET Core 应用程序的唯一托管选项。人们可能仍然选择将其托管在 linux 上或作为 Windows 服务。要么暴露在公共互联网(从 2.0+ 开始支持),要么在 NGINX/Apache/...

如果需要,在 .NET Core / ASP.NET Core 中部署任何组件的预览、每日或自定义构建也非常有用。

【讨论】:

  • 嗨,马丁,感谢您的回答。是否有关于可以传递给安装程序的参数的文档?或者关于 ANCN 版本与 .net 核心 SDK 版本兼容性的文档? (与 Bundle 2.0.1 一起安装的 ANCN 是否与 .net core SDK 2.0.7 一起使用)请参阅我给 ChrisPratt 的评论,这对我来说是什么。
  • 至少在它的 github 自述文件中提到过 - github.com/aspnet/AspNetCoreModule
  • 如果您认为应该更好地记录它,请在github.com/aspnet/Docs提出问题
猜你喜欢
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多