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

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 的过程中使用 UseHttpSysHTTP.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服务器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度移动联盟(munion)-广告平台投放流程详细介绍 (绿色通道)

1. 百度平台官网介绍&#xff1a; http://hi.baidu.com/mobads/blog/ ... 1c7fc3bc3e1e2e.html2. AdView 官网介绍&#xff1a; 为开发者提供“AdView-百度” 绿色通道审核&#xff1b;提供除百度分成外额外AdView渠道分成&#xff1b;赚取更多&#xff0c;更稳定的广告费用&a…

从一个骗局谈生活中的基础算法

曾经有一个著名的骗局&#xff1a;小明是一个赌马爱好者&#xff0c;最近他连续几次提前收到了预测赌马结果的邮件&#xff0c;从一开始由于不屑而错失良机&#xff0c;到渐渐深信不疑&#xff0c;直到最后给邮件发送方汇了巨款才发现上当。看过这个的人应该知道&#xff0c;骗…

用得最多的冒泡排序是不是少了个关键点?

前言冒泡排序应该是很多小伙伴的最爱&#xff0c;简单、直接、好理解&#xff1b;回顾以往参与和阅读的项目&#xff0c;凡是牵涉自定义排序的算法&#xff0c;很大一部分都在用冒泡&#xff0c;其中很多都忽略了一个关键点&#xff1b;来&#xff0c;咱们细细品…正文1. 冒泡排…

荐书 | 攻克世纪难题,拒绝领取菲尔兹奖的孤独数学天才的一生

今天小木给大家介绍五本数学科普文&#xff0c;了解了一些数学家研究数学、证明猜想的经历&#xff0c;他们的专研精神简直让小木五体投地&#xff01;这也验证了一句经典名言“念念不忘&#xff0c;必有回响”。希望我们都能把时间奉献给自己喜欢的事情上。下面&#xff0c;让…

C# 搭建自己的NuGet服务器,上传自定义NuGet包

第一步搭建NuGet服务器创建空Web项目安装Nuget服务&#xff0c;目前最新版本2.8.2安装完成&#xff0c;会自动生产服务&#xff0c;出现如下界面发布该网站&#xff0c;并部署至IIS将.nupkg文件发布至网站的Packages目录。在VS中修改NuGet引用路径注意把自定NuGet放在首位&…

在不同的ObjectContext中更新数据

第一个using中获取一些数据 User u; using (var db new Entities()) {u db.Users.First(); } 在using外改变 u.NickName "ABC"; 在第二个using中把改变更新到库 using (var db new Entities()) { …… db.SaveChanges(); } 在网上看了一些使用ApplyPropertyC…

5分钟理解一致性哈希算法

来自&#xff1a;cywosp链接&#xff1a;https://blog.csdn.net/cywosp/article/details/23397179一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希&#xff08;DHT&#xff09;实现算法&#xff0c;设计目标是为了解决因特网中的热点(Hot spot)问题&#xff0c;初衷…

linux 取消证书登录密码,SUSELinux 中为 SSH 访问设置不输入密码的证书认证登录方式...

SSH Client &#xff1a;linux-gxntSSH Server &#xff1a;xxzx-rdb目的&#xff1a; linux-gxnt 上的 nagios 用户以相同的用户(nagios)SSH 登录xxzx-rdb &#xff0c;不用输入密码。1.在 SSH Client 和 Server 上使用 yast 创建 nagios 用户和nagios 组&#xff0c;nagios 用…

Blazor 初探

Blazor 初探目录一、新建项目二、ASP.NET Core Blazor 项目结构三、结合代码讲解四、改造五、配置文件的使用六、发布到 Linux&#xff08;CentOS&#xff09;题外话&#xff0c;期间遇到个问题反向代理七、地址独立观察员 2021 年 4 月 11 日上个月发了篇文章《Blazor 中如何下…

Relaltek声卡在UBUNTU下没有声音的解决方法。

为什么80%的码农都做不了架构师&#xff1f;>>> The computer has an HDA Intel chip (Realtek ALC887) and I couldnt open alsamixer (this error was displayed: "load hw:0 error: Invalid argument"), although the sound seemed to be working in …

.Net项目模板进阶

友情提示&#xff1a;这篇有点长&#xff0c;有点绕&#xff0c;加油&#xff01;上一篇文章&#xff0c;简单的说明了一下.net项目模板的创建&#xff0c;主要是通过在项目文件*.csproj同目录下添加.template.config文件夹和里面的template.json&#xff0c;再用dotnet new -i…

Web Worker 使用教程

一、概述JavaScript 语言采用的是单线程模型&#xff0c;也就是说&#xff0c;所有任务只能在一个线程上完成&#xff0c;一次只能做一件事。前面的任务没做完&#xff0c;后面的任务只能等着。随着电脑计算能力的增强&#xff0c;尤其是多核 CPU 的出现&#xff0c;单线程带来…

NET问答: C# 中是否有最高效的方式对大文件做 checksum ?

咨询区 Dario&#xff1a;我需要在多台机器间同步大文件&#xff0c;不过文件高达 6G&#xff0c;通常我都是每几周手工同步一次&#xff0c;考虑到文件的文件名经常变&#xff0c;为了检验一致性&#xff0c;我考虑使用 checksum 机制。我的计划是在 源机器 和 目标机器 上做 …

linux宝塔类似工具,有没有比宝塔面板更好的linux运维工具?

我是一个站长,现在建站seo是比较重要的部分,买了独立ip的云服务器主机,为了就是能够seo效果好点.建站优化我不担心,最郁闷的就是linux服务器运维这块,宝塔linux面板是必须安装到服务器上,比较消耗服务器内存,运维比较麻烦.还有就是购买宝塔面板的附带插件比较贵,基本买个网站防…

世界上最难的5种编程语言

每个程序员都熟悉许多编程语言。许多编程语言都是高级的&#xff0c;它们的语法是人类可读的。然而&#xff0c;也有一些低级语言&#xff0c;对于一个人来说&#xff0c;读起来很困难&#xff0c;但是可以理解。您是否遇到过一种既不可读又不可理解的编程语言?有一些编程语言…

云原生 | .NET 5 with Dapr 初体验

【Dapr】| 总结/Edison Zhou分布式应用运行时Dapr目前已经发布了1.1.0版本&#xff0c;阿里云也在积极地为Dapr贡献代码和落地实践。作为一名开发者&#xff0c;自然也想玩一玩&#xff0c;看看Dapr带来的新“视”界到底是怎么样的。1关于DaprDapr&#xff08;Distributed Appl…

Python资料分享来袭,收下不谢!

近几年&#xff0c;机器学习一直很火&#xff0c;小编也有意识地收集了机器学习相关的资源&#xff0c;经过长时间的积累和沉淀&#xff0c;内容涵盖“Python教程”、“编程指南”、“学习视频”等。现在&#xff0c;小编准备将这些资料免费分享给大家&#xff01;扫描下面二维…

我敢说,这是最全的常用设计模式汇总

先分享一个小故事两个年轻人是大学同班同学&#xff0c;他们毕业后一起被同一家公司录取&#xff0c;可以说是站在相同的起跑线上。两个人都对未来信心满满&#xff0c;踌躇满志。其中一人怀抱满腔激情&#xff0c;到处学热门框架&#xff0c;但受限于公司体量和业务逻辑&#…

Python为什么是编程语言中最skr的?

源 / 大数据文摘&#xff08;BigDataDigest&#xff09; 编译 / 小七、Virgil、AlieenPython的出现让计算机编程语言不再是生僻的专业技能&#xff0c;而是常人都能学习和使用的万金油。《经济学人&#xff08;Economist&#xff09;》近日对Python的一篇专题报道&#xff0c…

Linux系统管理员的Bash指南,11条Bash实践经验!

每个职业都有最常用的工具。对于许多系统管理员来说&#xff0c;shell可能是比较熟悉的。在大多数Linux和其他类Unix系统上&#xff0c;默认的shell是Bash。Bash是一个相当古老的程序&#xff0c;它起源于20世纪80年代后期。但它建立在更多&#xff0c;更老的shell上&#xff0…