kestrel

IHostedService Stop without any reason

ぐ巨炮叔叔 提交于 2020-06-25 01:27:20
问题 Could anyone explain to me why my server stopped for no reason? below my IHostedService implementation: public class HostServiceBox : IHostedService { public Task StartAsync(CancellationToken cancellationToken) { return Task.Run(() => { DomonutyBoxBusiness.StartBoxListening(); //STARTUP Box listening while (true) { Logging.Info(DateTime.Now + " HostServiceBox Running"); Thread.Sleep(10000); } }, cancellationToken); } public Task StopAsync(CancellationToken cancellationToken) { Logging.Info

asp.net core 系列 9 三种运行环境和IIS发布

主宰稳场 提交于 2020-05-04 05:58:15
一.在asp.net core中使用多个环境   ASP.NET Core 配置是基于运行时环境, 使用环境变量。ASP.NET Core 在应用启动时读取环境变量ASPNETCORE_ENVIRONMENT,并将该值存储在 IHostingEnvironment.EnvironmentName 中。ASPNETCORE_ENVIRONMENT 可设置为任意值,但框架支持三个值:Development、Staging 和 Production。 如果发布项目未设置 ASPNETCORE_ENVIRONMENT,则默认为 Production (本机vs中项目Properties\launchSettings.json中environmentVariables默认设置的是Development,如果禁用environmentVariables,那默认则为Production)。   下面是Startup. Configure中的默认实现,本机默认配置的是Development环境。 //如果是Development环境 if (env.IsDevelopment()) { //当捕获同步和异步系统。管道中的异常实例,并生成HTML错误响应。 app.UseDeveloperExceptionPage(); } else { //如果不是Development环境

[08]ASP.NET Core 中 launchsettings.json 启动配置文件

无人久伴 提交于 2020-05-04 05:57:57
ASP.NET Core launchsettings.json 启动配置文件 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新版本 本文出自 《从零开始学 ASP.NET Core 与 EntityFramework Core》目录 视频课程效果更佳: 跨平台开发实战掌握 ASP.NET Core 与 EntityFramework Core ASP.NET Core launchsettings.json 文件 在本视频中,我们将讨论在 ASP.NET Core 项目中 launchsettings.json 文件的重要性。 launchsettings.json 文件 您将在项目根文件夹的**“Properties”**文件夹中找到此文件。 当我们从 Visual Studio 或使用.NET Core CLI 运行此 ASP.NET Core 项目时,将使用此文件中的设置。 此文件仅用于本地开发环境。我们不需要把它发布到生产环境的 Asp.net Core 程序中。 如果您希望您的 Asp.Net Core 应用程序在发布和部署应用程序时使用某些独立的设置,请将它们存储在 appsettings.json 文件中。我们通常将应用程序的配置信息存储在此文件中,比如数据库连接字符串。 我们还可以使用不同环境的

在IIS上部署你的ASP.NET Core项目

 ̄綄美尐妖づ 提交于 2020-05-02 06:34:32
概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等)。而配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中,所以这时候我们无需设置应用程序池来托管我们的代码,它只负责转发请求而已。 部署之前要确保你的IIS上已经安装了AspNetCoreModule托管模块,如果没有的话,点击 这里 进行下载并安装 一、安装IIS 1、在控制面板→程序→启用或关闭Windows功能→勾选Internet Information Services以及Web管理工具下的IIS管理控制台 二、发布项目 1、发布我们上一篇建好的ASP.NET Core API项目,然后选择IIS,新建一项发布配置 2、发布方法选择文件系统,然后设置一个发布路径 3、配置文件可以根据你线上、线下的环境进行选择,因为是基于.NET

Windows + IIS 环境部署Asp.Net Core App

a 夏天 提交于 2020-04-28 03:30:12
Windows + IIS 环境部署Asp.Net Core App 环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运行Asp.Net Core App程序。过去无论是原始的Asp程序还是后来的Asp.Net程序,在IIS中的部署方式都没太大变化,仅需指向程序目录,然后设定虚拟目录,最后做一些参数配置。Asp.Net Core App为了做到跨平台,自带了一个轻量级的Web Server - Kestrel,那么要在IIS中部署Asp.Net Core App,就必须有一种新的机制来协调IIS与Kestrel Server之间的数据传递。 1. Asp.Net Core的部署模式 与传统的Asp.Net程序不同,Asp.Net Core App使用了Kestrel Server。Kestrel是一个跨平台的Web Server,与IIS一样负责请求的监听、接收和响应,但没有IIS丰富的管理功能,仍需要由IIS来处理一些前置工作。(当然你也可以使用Apache来做前置处理) IIS负责把外部请求转发给后端的Asp.net Core App,充当“反向代理(reverse-proxy)”角色。 2. 理解反向代理 “反向”是指入站方向,

asp.net core自定义端口

老子叫甜甜 提交于 2020-04-27 09:18:11
asp.net Core 自定义端口 官方文档 aspnet内库源码: https://github.com/aspnet dotnet系统内库源码: https://github.com/dotnet asp.net core 官方文档 自定义端口访问 webHost增加UseUrls。 例:WebHost.UseUrls("http:// :5001","http:// :5002"); 配置文件 hosting.json。例: 通过查看 WebHost 源码我们得知,启动后会先读取相关配置参数, internal class WebHost:IWebHost { private static readonly string DeprecatedServerUrlsKey = "server.urls"; //... private void EnsureServer() { if (Server == null) { //... if (addresses != null && !addresses.IsReadOnly && addresses.Count == 0) { var urls = _config[WebHostDefaults.ServerUrlsKey] ?? _config[DeprecatedServerUrlsKey]; } } } } public

ASP.NET Core技术研究-全面认识Web服务器Kestrel

微笑、不失礼 提交于 2020-04-26 10:46:02
ASP.NET Core技术研究-全面认识Web服务器Kestrel 因为IIS不支持跨平台的原因,我们在升级到ASP.NET Core后,会接触到一个新的Web服务器Kestrel。相信大家刚接触这个Kestrel时,会有各种各样的疑问。 今天我们全面认识一下ASP.NET Core的默认Web服务器Kestrel。 一、初识Kestrel 首先,Kestrel是一个跨平台的Web服务器,支持运行在Windows、macOS、Linux等操作系统中。Kestrel支持一下使用场景: HTTPS Opaque upgrade used to enable WebSockets(启用WebSocket情况下的不透明升级) Unix sockets for high performance behind Nginx(Nginx高性能模式下的Unix套接字) HTTP2(不支持macOS) Kestrel支持运行在所有.NET 支持的平台和版本之上。 二、Kestrel主要应用场景 Kestrel主要有两种使用模式: 1. Kestrel直接作为Web服务器,直接接收并处理各类Http请求: 2. 与各类反向代理服务器(例如Nginx、Apache、IIS)配合使用,反向代理服务器接收Http请求,将这些请求转发到Kestrel Web服务器 使用反向代理服务器的好处有哪些呢?

即将发布的 ASP.NET Core 2.2 会有哪些新玩意儿?

风格不统一 提交于 2020-04-25 07:07:59
今年 6 月份的时候时候 .NET 团队就在 GitHub 公布了 ASP.NET Core 2.2 版本的 Roadmap(文末有链接),而前两天 ASP.NET Core 2.2 预览版 2 已经可以下载使用了,正式版大约会在今年年底的时候发布。 相对于 2.0 and 2.1 来说,这次更新算是一次小更新了,主要包含 Bug 修复、性能优化、增加一些小的特性、和 Merge 社区的 PR。 下面来总结一下 ASP.NET Core 2.2 有哪些新的东西。 ApiController 特性增强 ApiController 特性是 ASP.NET Core 2.1 引入的,应用在 Controller 类上,主要用来自动对 Model 进行验证并自动响应 400 错误。引入 ApiController 特性后比如下面的代码是多余的: if (!ModelState.IsValid) { return BadRequest (ModelState) ; } 在版本 2.2,ApiController 特性提供了 API Explorer 元数据,可以更友好地生成 Swagger/OpenAPI 文档。然后还增加了一些默认约定,如果代码不符合约定,是会有建议的。比如下面的代码: [HttpPost( "/orders" )] public ActionResult<Order>

你真的了解ASP.NET Core 部署模型吗?

你。 提交于 2020-04-25 07:07:10
原文: 你真的了解ASP.NET Core 部署模型吗? ---------------------------- 以下内容针对 ASP.NET Core2.1,2.2出现IIS进程内寄宿 暂不展开讨论 -------------------------- 相比ASP.NET,ASP.NET Core 2.1出现了3个新的组件:ASP.NET Core Module、Kestrel、dotnet.exe, 后面我们会理清楚这三个组件的作用和组件之间的交互原理。 ASP.NET Core 设计的初衷是 开源跨平台、高性能Web服务器 ,ASP.NET Core跨平台特性相对于早期ASP.NET 是一个显著的飞跃,.NET程序可以理直气壮与JAVA同台竞技,而ASP.NET Core的高性能特性更是成为致胜法宝。 1. ASP.NET Core宏观梳理 为实现跨平台部署.Net程序,微软为ASP.NET Core重新梳理了部署架构: ① 由于各平台都有特定web服务器, 为解耦差异,采用 HTTP通信 的方式,将web服务器的请求转发到 ASP.NET Core 程序处理 ② ASP.NET Core Web进程(dotnet.exe)会使用一个 进程内HTTP服务器:Kestrel , 处理转发过来的请求 ③ Web服务器现在定位成 反向代理服务器 , ASP.NET Core

ASP.NET Core跨平台 技术内幕

旧城冷巷雨未停 提交于 2020-04-25 07:02:12
  ASP.NET Core设计初衷是 开源跨平台、高性能Web服务器 ,其中跨平台特性较早期ASP.NET是一个显著的飞跃,.NET现可以理直气壮与JAVA同台竞技,而ASP.NET Core的高性能特性更是成为致胜法宝。 ASP.NET Core 2.1+为IIS托管新增In-Process模型并作为默认选项( 使用IISHttpServer替代了Kestrel,dotnet程序由IIS网站进程w3wp.exe内部托管 )。 为了展示ASP.NET Core跨平台特性,本文还是重点着墨 经典的Out-Process托管模型。 宏观模型 为解耦平台差异,程序内置Http服务组件Kestrel,由平台web服务器转发请求到Kestrel。 老牌web服务器定位成 反向代理服务器 ,转发请求到ASP.Net Core程序(分别由IIS AspNetCore Module 和Nginx配置参数完成) 常规代理服务器,只用于代理内部主机对外网的连接需求,一般不支持外部对内部网络的访问请求; 当一个代理服务器能够代理外部网络的主机,访问内部网络,这种代理服务器被称为反向代理服务器 。 平台web代理服务器、ASP.NET Core程序(dotnet.exe) 均为独立进程,平台自行决定互动细节,只需确保平台web服务器与Kestrel形成Http通信。 Kestrel