打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何在 ASP.Net Core 中使用 HTTP.sys WebServer ?

dotNET跨平台 今天

以下文章来源于码农读书 ,作者码农读书

ASP.Net Core 是一个开源的,跨平台的,轻量级模块化框架,可用它来构建高性能的Web程序,大家都知道 Kestrel 是 ASP.Net Core 内置的跨平台web服务器,但是它有一定的局限性,比如不支持 端口共享 , WebSockets 等等,那怎么办呢?

  • 如果你的web仅需部署在 windows 上。
  • 如果你只需轻量级的web服务器。
  • 如果你需要更多的 Kestrel 没有的功能。

可以尝试用 HTTP.sys,它可以作为 Kestrel 在 windows 上的替代产品。

为什么要使用 HTTP.sys

首先看一下  HTTP.sys 的部署方式,如下图所示:

从图中可以看出 HTTP.sys 可以让 Web 直接对外提供服务,无需传统的重量级IIS,请求首先会达到 HTTP.sys,然后内部会为 请求 创建一个队列和一个应用程序池。

接下来看看 HTTP.sys 所包含的特性。

  • windows 验证
  • WebSockets
  • 端口共享
  • 基于SNI的HTTPS
  • 响应缓存
  • 直接文件传输

ASP.net Core 中配置 HTTP.sys

其实配置非常简单,在构建 webHost 的过程中使用 UseHttpSys 将 HTTP.sys 引入到 ASP.net Core 中,如下代码所示:


    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseHttpSys(options =>
                    {
                        options.Authentication.Schemes = Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes.None;
                        options.Authentication.AllowAnonymous = true;
                        options.MaxConnections = 100;
                        options.MaxRequestBodySize = 1000000;
                        options.UrlPrefixes.Add("http://localhost:5000");
                    });

                    webBuilder.UseStartup<Startup>();
                });
    }

值得注意的是,在跑程序之前,一定要在 launchSettings 中选择合适的节点,因为 Visual Studio 默认会用 IIS Express 执行,所以这里选择 WebApplication3 就可以了。

接下来就可以把程序跑起来,如下图所示:

从图中的 warn: Microsoft.AspNetCore.Server.HttpSys.MessagePump[37] 可以看出,当前已成功用 HTTP.sys 作为web服务器。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
第一个,net core项目,一起入门 !
ASP.NET Core笔记(1) - 了解Startup类
Asp.Net Core 3.1学习- 应用程序的启动过程(5)
IIS架构与HTTP请求处理流程
Asp.Net Core 学习教程1、初始.Net Core与VS Code 第一个web程序
3.介绍ASP.NET Core框架
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服