-1

我正在学习 Asp.Net Core。老实说,我有点困惑。

官网上说:

ASP.NET Core 与托管应用程序的 Web 服务器环境完全解耦

这是什么意思?这是否意味着 asp.net Core 应用程序可以托管在任何接受 http 流量并对其进行响应的服务器上,我从以下行中得到了这个概念

ASP.NET Core 支持在 IIS 和 IIS Express 中托管,以及使用 Kestrel 和 WebListener HTTP 服务器的自托管方案

来自上面的引用:什么是 Kestrel 和 WebListener HTTP 服务器?这是否意味着 apache tomcat 也可以托管 asp.net 核心应用程序,如果可以,那么安装 apache 后我需要什么?

我想知道的最后一件事是

此外,开发人员和第三方软件供应商可以创建自定义服务器来托管他们的 ASP.NET Core 应用程序。

如何创建自定义服务器来托管 asp.net 核心应用程序。这是指使用自托管应用程序OWIN吗?

4

1 回答 1

3

默认情况下,应用程序基本上是自托管的,基本上是在内部运行 kestrel Web 服务器的控制台应用程序。当他们说它与 Web 服务器分离时,他们的意思是旧的 ASP.NET 应用程序与 IIS 紧密耦合,而新的 ASP.NET Core 则与之分离。要查看它的基本内容,请查看此示例并了解 Program.cs 是如何像一个控制台应用程序一样,将由 dotnet 命令调用,即 dotnet run,它配置事物的托管方式以及启动类是什么。

目前,kestrel 并不是面向互联网的 Web 服务器,有一个模块可以在 IIS 后面运行它,并且有关于在 nginx 后面运行它的教程。也应该可以用 apache 来做到这一点,但不确定是否存在一个模块或者是否需要一个模块

kestrel 是跨平台的,默认使用,可以使用 weblistener 代替 kestrel,但我“认为”这只是 windows

我不确定我们是否仍将其称为 OWIN,但与 OWIN 非常相似的是我们如何从启动类配置中间件管道

于 2016-06-25T17:40:35.570 回答