当前位置: 首页 > news >正文

上海自适应网站设计做网站卖大闸蟹

上海自适应网站设计,做网站卖大闸蟹,建设培训中心网站,设计师经常看的app在.NET Core中#xff0c;Host负责应用程序的启动和生命周期管理。除此之外#xff0c;在Host中还可以设置日志(Logging)、配置(Configuration)和依赖关系注入(Dependency Injection)等。Host将一个常规的控制台应用程序(Console Application)变成了一个可以长时间运行的服务… 在.NET Core中Host负责应用程序的启动和生命周期管理。除此之外在Host中还可以设置日志(Logging)、配置(Configuration)和依赖关系注入(Dependency Injection)等。Host将一个常规的控制台应用程序(Console Application)变成了一个可以长时间运行的服务(Long-running Service)。Hosting History在.NET Core中有以下2个Host:.NET Generic Host(简称 Generic Host)ASP.NET Core Web Host(简称 Web Host)要了解它们之间的区别与联系我们需要从.NET Core的发展历程中寻找答案。微软在2016年6月发布了.NET Core 1.0。.NET Core是一个开放的、支持跨平台的框架它与.NET Framework有着显著的不同。在这之后微软又陆续发布了.NET Core 1.1、.NET Core 2.0、.NET Core 2.1、.NET Core 2.2、.NET Core 3.0和.NET Core 3.1。Web Host在.NET Core 1.0中被引入它被用于配置并启动KestrelWeb服务器在指定的端口上监听HTTP请求。Web Host正如它的名称所言只用于Host ASP.NET Core Web Application。Generic Host在.NET Core 2.1中被引入但它只被用于non-HTTP的场景例如hosted services/worker services。此时你仍需要使用Web Host来Host ASP.NET Core Web Application。这带来了一定的混淆和麻烦很多相近的类被引入。IWebHost 与 IHostIWebHostBuilder与IHostBuilderInterfaceNamespaceDefault ImplementationGit RepoSource CodeIWebHostMicrosoft.AspNetCore.HostingWebHosthttps://github.com/dotnet/aspnetcoresrc/Hosting/Hosting/src/Internal/WebHost.csIHostMicrosoft.Extensions.HostingHosthttps://github.com/dotnet/runtimesrc/libraries/Microsoft.Extensions.Hosting/src/Internal/Host.csIWebHostBuilderMicrosoft.AspNetCore.HostingWebHostBuilderhttps://github.com/dotnet/aspnetcoresrc/Hosting/Hosting/src/WebHostBuilder.csIHostBuilderMicrosoft.Extensions.HostingHostBuilderhttps://github.com/dotnet/runtimesrc/libraries/Microsoft.Extensions.Hosting/src/HostBuilder.cs还有与这些接口相关的静态辅助类ClassNamespaceGit RepoSource CodeWebHostMicrosoft.AspNetCorehttps://github.com/dotnet/aspnetcoresrc/DefaultBuilder/src/WebHost.csHostMicrosoft.Extensions.Hostinghttps://github.com/dotnet/runtimesrc/libraries/Microsoft.Extensions.Hosting/src/Host.cs我们在Program.cs文件中一般都是用这两个静态辅助类来创建IWebHost或IHost的具体实例进而启动应用程序。IHostingEnvironment vs IHostEnvironment vs IWebHostEnvironment这几个接口是不是傻傻分不清这其实充分说明了微软在主导.NET Core的开发过程中存在着管理和命名的混乱。这也难免毕竟这么大的项目而且代码库也是各管各的。首先IHostingEnvironment存在于2个不同的命名空间中虽然接口内容大致相同但却是互不兼容的——它们之间没有继承关系。InterfaceNamespaceGit RepoSource CodeIHostingEnvironmentMicrosoft.AspNetCore.Hostinghttps://github.com/dotnet/aspnetcoresrc/Hosting/Abstractions/src/IHostingEnvironment.csIHostingEnvironmentMicrosoft.Extensions.Hostinghttps://github.com/dotnet/runtimesrc/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IHostingEnvironment.cs从.NET Core 3.0起这两个接口都被标记为obsolete取而代之的分别是IWebHostEnvironment 与 IHostEnvironment。它们依然存在于不同的命名空间中但它们之间有了继承关系。InterfaceNamespaceGit RepoSource CodeIWebHostEnvironmentMicrosoft.AspNetCore.Hostinghttps://github.com/dotnet/aspnetcoresrc/Hosting/Abstractions/src/IWebHostEnvironment.csIHostEnvironmentMicrosoft.Extensions.Hostinghttps://github.com/dotnet/runtimesrc/libraries/Microsoft.Extensions.Hosting.Abstractions/src/IHostEnvironment.cs1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 namespace Microsoft.AspNetCore.Hosting {public interface IWebHostEnvironment : IHostEnvironment{string WebRootPath { get; set; }IFileProvider WebRootFileProvider { get; set; }} }namespace Microsoft.Extensions.Hosting {public interface IHostEnvironment{string EnvironmentName { get; set; }string ApplicationName { get; set; }string ContentRootPath { get; set; }IFileProvider ContentRootFileProvider { get; set; }} } 这样的设计就很合理也减少了重复。它们各自的默认实现也基本相同。Default ImplementationNamespaceGit RepoSource CodeHostingEnvironmentMicrosoft.AspNetCore.Hostinghttps://github.com/dotnet/aspnetcoresrc/Hosting/Hosting/src/Internal/HostingEnvironment.csHostingEnvironmentMicrosoft.Extensions.Hosting.Internalhttps://github.com/dotnetsrc/libraries/Microsoft.Extensions.Hosting/src/Internal/HostingEnvironment.cs1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 namespace Microsoft.AspNetCore.Hosting {internal class HostingEnvironment : IHostingEnvironment, Extensions.Hosting.IHostingEnvironment,IWebHostEnvironment{public string EnvironmentName { get; set; } Extensions.Hosting.Environments.Production;public string ApplicationName { get; set; }public string WebRootPath { get; set; }public IFileProvider WebRootFileProvider { get; set; }public string ContentRootPath { get; set; }public IFileProvider ContentRootFileProvider { get; set; }} }namespace Microsoft.Extensions.Hosting.Internal {public class HostingEnvironment : IHostingEnvironment, IHostEnvironment{public string EnvironmentName { get; set; }public string ApplicationName { get; set; }public string ContentRootPath { get; set; }public IFileProvider ContentRootFileProvider { get; set; }} } Generic Host 取代 Web Host时间来到了.NET Core 3.0发布。微软重构了Generic Host使之成为一个真正的通用的Host——可同时运行Worker Services和Web Applications。这大大简化了Host的模型及相关的类开发者理解和使用起来更加容易了。图片来自PluralSight课程小结尽可能地使用IHostEnvironment官方不建议在.NET Core 3.0及以上的版本中使用Web Host对于ASP.NET Core Web Application来说Kestrel Web Server被包装在GenericWebHostService中被Generic Host初始化并启动微软于2020年11月发布了.NET 5。.NET 5是.NET Core的下一个版本被描述为.NET统一之旅中的第一个版本它是为了使更多的开发人员能够将.NET框架代码和应用迁移到.NET 5。该平台将来自.NET Framework、.NET Core和Mono的代码组合在一起为所有现代.NET应用提供一个单一的平台。本文所讨论的.NET Generic Host同样适用于.NET 5。CreateDefaultBuilder与ConfigureWebHostDefaults一般情况下我们使用静态辅助类Host中的CreateDefaultBuilder方法来创建IHostBuilder的实例。对于ASP.NET Core Web Application我们还会调用ConfigureWebHostDefaults方法。我们需要了解这两个方法到底做了哪些默认的设置以便减少不必要、多余的设置。CreateDefaultBuilder 方法将内容根目录设置为由 GetCurrentDirectory 返回的路径通过以下项加载主机配置前缀为 DOTNET_ 的环境变量命令行参数通过以下项加载应用配置appsettings.jsonappsettings.{Environment}.json在 Development 环境中运行时的用户机密配置信息(secrets.json)环境变量命令行参数添加以下日志提供程序控制台调试EventSourceEventLog仅当在 Windows 上运行时在 Development 环境中启用范围验证和依赖关系验证图片来自PluralSight课程ConfigureWebHostDefaults 方法从前缀为 ASPNETCORE_ 的环境变量加载主机配置。使用应用的托管配置提供程序将 Kestrel 服务器设置为 web 服务器并对其进行配置。如果 ASPNETCORE_FORWARDEDHEADERS_ENABLED 等于 true则添加转接头中间件(ForwardedHeadersStartupFilter)。添加 IIS 集成。推荐阅读源代码了解更多的实现细节CreateDefaultBuilderConfigureDefaultsConfigureWebHostDefaultsGenericWebHostBuilderConfigureWebDefaultsConfigureWebHostGeneric Host 的启动与停止启动Generic Host 的启动步骤如下在Program.cs文件中通过CreateDefaultBuilder构建一个IHost的实例调用IHost上的静态扩展方法Run或RunAsync这会间接调用到IHost的StartAsync方法IHost的StartAsync方法则会遍历所有注册的IHostedService调用它的StartAsync方法IHost上的静态扩展方法[Run或RunAsync]会调用另一个扩展方法——WaitForShutdownAsync等待程序结束的信号图片来自PluralSight课程.NET Core 应用程序运行后会创建名为.NET Host(dotnet.exe)的后台进程。停止Generic Host 的停止步骤如下用户使用Ctrl C或者应用程序使用代码来发出程序结束的信号IHost的StopAsync方法在WaitForShutdownAsync中被调用所有注册的IHostedService的StopAsync方法被调用应用程序退出图片来自PluralSight课程需要指出的是IHostedService的注册顺序是非常重要的启动的时候是按注册顺序停止的时候则是倒序。其它的Host在Windows操作系统中你还会看到很多其它的Host。Console Window Host(conhost.exe)Console Window Host, 即命令行程序的宿主进程。典型的命令行程序有cmd.exe、nslookup.exe等。Console Window Host负责绘制命令行程序的图形化窗口管理输入缓冲区和屏幕缓冲区。Service Host(svchost.exe)Service Host是一个共有的宿主进程的名称它用来运行DLL文件中的服务特别是很多系统服务。为了使这些服务之间保持隔离减少相互影响导致的程序错误系统会运行很多个Service Host的进程实例。你可以使用Process Explorer这个工具通过Command Line列来区分它们。DLL Host(dllhost.exe)DLL Host程序又称为COM Surrogate它是COM组件的宿主进程。COMComponent Object Model组件对象模型是微软于1993年提出的一种软件开发技术它定义了组件对象进行交互的二进制接口标准。COM组件大多以动态链接库DLL的形式发布DLL Host(dllhost.exe)则正是加载这些COM组件的宿主程序。与Service Host类似系统会运行很多个DLL Host的进程实例。你可以使用Process Explorer这个工具通过Command Line列来区分它们。参考资料ASP.NET Core Web Host.NET Generic Host in ASP.NET CoreBuilding ASP.NET Core Hosted Services and .NET Core Worker ServicesIntroducing .NET CoreAnnouncing .NET Core 1.0Announcing .NET 5.0Understanding .NET Generic Host ModelGeneric Host Builder in ASP .NET Core 3.1Changes to Service Host grouping in Windows 10
http://www.sadfv.cn/news/144173/

相关文章:

  • 什么样的网站容易做seo无锡网站建设优化
  • 网站中的搜索功能怎么做的重庆网站开发设计公司
  • 当建设部门网站河南建设厅网站
  • 做企业网站设计价格是多少山东seo网页优化外包
  • 网站建设方案对比报告产品设计方案格式模板
  • 求一个2023年没封的南通企业网站seo
  • 网站规划与网页设计案例图书大厦网站建设报告
  • 石家庄网站建设公司哪个好icp网站备案流程
  • 做设计不进设计公司网站wordpress连接数据库文件
  • 网站建设的服务怎么样wordpress 后台模板
  • 谷城做网站企业如何开展网络营销
  • 坪地网站建设如何wordpress图片下一篇
  • wordpress开启伪静态无法登陆2017织梦网站怎么做seo
  • 普陀网站建设比较实惠wordpress实现微信登录
  • 网站建设有什么优势排版设计网站
  • 电子商务网站设计html模板化学网站定制
  • 查看网站开发技术域名解析记录值填什么
  • 茶叶建设网站的优势餐饮行业网站建设风格
  • 黄山购物网站建设服务器做视频网站
  • 合肥市建设建筑网站seo综合优化公司
  • 使用 私有云 做视频网站沈阳妇科排名前十的医院
  • 如何建设微网站直播app开发公司有哪些
  • 成都网站建设前50强WordPress标题换行显示
  • 品牌网站建设最佳大蝌蚪做外贸一般用什么网站好
  • 门户网站如何做推广wordpress主题如何汉化
  • 网站建设策划书色彩设计方案石家庄网站建设找汉狮
  • 太原做网站的公司网站建设网站开发案例详解光盘下载
  • 新野做网站上海门户网站一网通办
  • 网站关键词排名服务正规微商平台
  • 行业网站有哪些平台优化营商环境心得体会个人