【问题标题】:Using Kestrel without ASP.NET core在没有 ASP.NET 核心的情况下使用 Kestrel
【发布时间】:2018-06-08 20:44:53
【问题描述】:

我想使用 Kestrel HTTP Server 来做与 ASP.NET 抽象无关的 HTTP 事情。我不想只安装 Kestrel 的任何 ASP.NET 包并使用请求/响应模型来编写快速/高性能的 HTTP 应用程序。

在过去,这是通过HttpListener 完成的,但由于现在一切都在 Linux 上运行,我无法使用 HTTP.sys。

每个 Kestrel 示例都展示了如何使用 WebHost 东西将其与 ASP.NET Core 一起使用。

我只想运行一个控制台应用程序,它会打开一个端口并给我 HTTP 请求。

我几乎 100% 确定这是可能的。我该怎么做?

【问题讨论】:

  • 我相信 Kestrel 是用 .net 核心编写的,所以你很难不使用这些包。
  • Kestrel 运行一系列的中间件,所以你只需要学习如何自定义加载哪些中间件组件,并移除所有与 ASP.NET Core 相关的,只留下你关心的,比如静态的文件中间件和 URL 重写中间件。

标签: c# .net .net-core kestrel-http-server


【解决方案1】:

Kestrel 在传输层和 Http 层都对 Asp.Net 包有很多依赖。即使您只想使用Kestrel.Transport 并实现自己的HttpServer,您也需要Kestrel.Transport.AbstractionKestrel.Transport.Socket 库中的Microsoft.AspNetCore.Hosting 之类的包。因此,如果您想删除这些依赖项,您需要对所有 Kestrel 类库进行完全自定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 2022-12-22
    • 2023-03-29
    • 2021-10-22
    • 2010-10-23
    相关资源
    最近更新 更多