如何在 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,一经查实,立即删除!

相关文章

php图片上传 thinkphp5,thinkphp5图片上传接口

public function avatarUpload(){$file request()->file(‘file‘);$filePath ‘avatar‘;$width 200;$height 200;if($file){$filePaths ROOT_PATH . ‘public‘ . DS . ‘uploads‘ . DS .$filePath;if(!file_exists($filePaths)){mkdir($filePaths,0777,true);}$inf…

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

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

linux命令查询邮件发送状态,Linux发邮件之mail命令详解

一、mail命令1.配置vim /etc/mail.rc文件尾增加以下内容set from1968089885qq.com smtp"smtp.qq.com"set smtp-auth-user"1968089885qq.com" smtp-auth-password"123456"set smtp-authlogin说明&#xff1a;from: 对方收到邮件时显示的发件人smt…

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

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

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

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

【POJ】【最小生成树】1789 Truck History

1 思路 题目链接。最小生成树&#xff08;MST&#xff09;问题。 2 代码 代码来自宇宙吾心博客。 #include <iostream> #include <limits> #include <cstring> using namespace std; const int N2001;char c[N][8]; // 保存字符串 int …

linux怎么搜索特定文件夹,linux如何在特定文件夹中查找特定文件

user188095724linuxfind这是我的文件夹结构:/site1/myFolder/otherFolder1/a.gif/site1/myFolder/otherFolder1/b.png/site1/myFolder/otherFolder1/c.php.../site2/myFolder/otherFolder2/d.gif/site2/myFolder/otherFolder2/e.png/site2/myFolder/otherFolder2/f.php.../site…

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

今天小木给大家介绍五本数学科普文&#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;单线程带来…

bert模型需要什么版本Linux,Bert模型

Bert语言表征预训练。1有上下文——根据整句话生成词表征2无上下文——word2vec 和glove词汇表中每个单词生成单个词嵌入表征&#xff0c;bank、bank deposit、river bank 相同表征Unsupervised(仅使用语料库),深度双向Bert建立在上下文预训练语境表征工作基础上&#xff0c;半…

Hmm

http://blog.sina.com.cn/s/blog_46ed82810100cgwb.html 彻底搞定C指针&#xff0d;const int * pi/int * const pi的区别 http://www.qnr.cn/pc/lin/study/201008/521819.html Linux系统内存监控全面讲解之free命令 http://www.qnr.cn/pc/lin/study/201008/521844.html 具有杀…

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

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

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

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