asp.net - OWIN Katana 与 ASP.NET Core Docker 容器相比如何
问题描述
我对微软的路线图感到困惑。OWIN 的用途是将 Web 应用程序与 IIS 分离,因此开发了 OWIN。现在 IIS 可以托管 OWIN 开发的应用程序,或者想法是任何 Web 服务器都可以托管 OWIN 应用程序。事实上,OWIN 应用程序可以自托管,这意味着不需要 Web 服务器(本身) - 自托管是一个轻量级的 Web 服务器。
所以现在进入图片 ASP.NET Core 与 Docker 容器。这些需要 OWIN,还是完全不同的动物?它们可以与 OWIN 共存吗?为什么将 OWIN 与 Docker 一起使用?为什么选择 Docker 而不是 OWIN。关于使用 Microsoft 技术的 Web 应用程序的正确方向和未来的许多问题。也许我很厚,没有抓住重点。随意给我发火。
解决方案
首先,OWIN 不是微软开发的。这是微软购买的第三方规范。不久之后微软就偏离了该规范,尽管您仍然可以构建基于 OWIN 的应用程序,但标准的微软中间件不是 OWIN(尽管它在某种程度上基于 OWIN)。
其次,容器与此无关。容器只是一个分发和运行时环境,它将应用程序隔离到自己的虚拟空间中,而没有完整的操作系统虚拟化的开销。这与 IIS、ASP.NET 或 OWIN 无关。
最后,Microsoft 的 .net 核心自托管 Web 服务器称为 Kestrel,它实际上可以通过 shim 模块链接到 IIS(没有应用程序的 IIS 依赖项)。或者它可以是一个独立的 HTTP 服务器。
此外,OWIN 的主要目的之一是将 HTTP 上下文从应用程序中抽象出来,并且使用 .net 核心他们有机会重新设计 HttpContext 以独立于 IIS,因此在 .NET 核心中大大减少了这种需求。中间件还是有需求的,所以团队自己开发了类似的中间件,没有OWIN的一些限制。
推荐阅读
- python - 有人可以解释为什么我的矩阵减法会弄乱索引吗?
- python - 将字符串从特定字符剥离到末尾
- python - python中倍数问题的麻烦
- python-3.x - 虽然循环打印消息很多次
- python - 分类交叉熵损失函数的可接受范围
- python - 图形在 matplot-离散分布图中不起作用
- ng-bootstrap - 在 HTML dom 元素变量中设置手风琴面板对象的类型
- websphere - javax.net.ssl.SSLPeerUnverifiedException:证书
不匹配任何主题替代名称 - r - 什么是执行取决于选择由另一列索引的各种列的计算的有效方法
- json - 将 json 请求正文转换为 x-www-form-urlencoded