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

网站建设 后台wordpress 解压

网站建设 后台,wordpress 解压,电商网站建设企业,怎么做信息流广告代理商借助 .NET提供的服务承载#xff08;Hosting#xff09;系统#xff0c;我们可以将一个或者多个长时间运行的后台服务寄宿或者承载我们创建的应用中。任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载#xff0c;ASP.NET Core应用最终也体现为这…借助 .NET提供的服务承载Hosting系统我们可以将一个或者多个长时间运行的后台服务寄宿或者承载我们创建的应用中。任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载ASP.NET Core应用最终也体现为这样一个承载服务。[本文节选《ASP.NET Core 6框架揭秘》第14章][S1407]利用IHostApplicationLifetime对象关闭应用源代码[S1408]与第三方依赖注入框架的整合源代码[S1409]利用配置初始化承载环境源代码[S1407]利用IHostApplicationLifetime对象关闭应用我们接下来通过一个简单的实例演示如何利用IHostApplicationLifetime服务来关闭整个承载应用。我们在一个控制台应用程序中定义了如下这个承载服务类型FakeHostedService并在其构造函数中注入了IHostApplicationLifetime服务。在得到其三个属性返回的CancellationToken对象之后我们在它们上面分别注册了一个回调在控制台输出相应的文字。public sealed class FakeHostedService : IHostedService {private readonly IHostApplicationLifetime _lifetime;private IDisposable? _tokenSource;public FakeHostedService(IHostApplicationLifetime lifetime){_lifetime  lifetime;_lifetime.ApplicationStarted.Register(()  Console.WriteLine([{0}]Application started, DateTimeOffset.Now));_lifetime.ApplicationStopping.Register(()  Console.WriteLine([{0}]Application is stopping., DateTimeOffset.Now));_lifetime.ApplicationStopped.Register(()  Console.WriteLine([{0}]Application stopped., DateTimeOffset.Now));}public Task StartAsync(CancellationToken cancellationToken){_tokenSource  new CancellationTokenSource(TimeSpan.FromSeconds(5)).Token.Register(_lifetime.StopApplication);return Task.CompletedTask;}public Task StopAsync(CancellationToken cancellationToken){_tokenSource?.Dispose();return Task.CompletedTask;} }在实现的StartAsync方法中我们采用如上的方式在等待5秒之后调用IHostApplicationLifetime对象的StopApplication方法关闭应用程序。FakeHostedService服务最后采用如下所示的方式承载于当前应用程序中。using App; Host.CreateDefaultBuilder(args).ConfigureServices(svcs  svcs.AddHostedServiceFakeHostedService()).Build().Run();该程序运行之后在控制台上输出的结果如图1所示从三条消息输出的时间间隔可以确定当前应用程序正是承载FakeHostedService通过调用IHostApplicationLifetime服务的StopApplication方法关闭的。图1 调用IHostApplicationLifetime服务关闭应用程序[S1408]与第三方依赖注入框架的整合《一个Mini版的依赖注入框架》中创建了一个名为Cat的简易版依赖注入框架并在《与第三方依赖注入框架Cat的整合》中为其创建了一个IServiceProviderFactoryTContainerBuilder实现类型具体类型为CatServiceProvider我们接下来演示一下如何通过注册CatServiceProvider实现与Cat这个第三方依赖注入框架的整合。在创建的演示程序中我们采用这样的方式定义了三个服务Foo、Bar和Baz和对应的接口IFoo、IBar和IBaz并在服务类型上标注MapToAttribute特性来定义服务注册信息。public interface IFoo { } public interface IBar { } public interface IBaz { }[MapTo(typeof(IFoo), Lifetime.Root)] public class Foo :  IFoo { }[MapTo(typeof(IBar), Lifetime.Root)] public class Bar :  IBar { }[MapTo(typeof(IBaz), Lifetime.Root)] public class Baz :  IBaz { }如下所示的FakeHostedService类型表示承载的服务。我们在构造函数中注入了IFoo、IBar和IBaz对象构造函数提供的调试断言用于验证上述三个服务被成功注入。public sealed class FakeHostedService: IHostedService {public FakeHostedService(IFoo foo, IBar bar, IBaz baz){Debug.Assert(foo ! null);Debug.Assert(bar ! null);Debug.Assert(baz ! null);}public Task StartAsync(CancellationToken cancellationToken)  Task.CompletedTask;public Task StopAsync(CancellationToken cancellationToken)  Task.CompletedTask; }我们在如下的演示程序中创建了一个IHostBuilder对象通过调用其ConfigureServices方法注册了需要承载的FakeHostedService服务后我们调用它的UseServiceProviderFactory方法完成了对CatServiceProvider的注册。我们随后调用了CatBuilder的Register方法完成了针对入口程序集的批量服务注册。调用IHostBuilder的Build方法构建出作为宿主的IHost对象并启动它之后承载的FakeHostedService服务将自动被创建并启动。using App; using System.Reflection;Host.CreateDefaultBuilder().ConfigureServices(svcs  svcs.AddHostedServiceFakeHostedService()).UseServiceProviderFactory(new CatServiceProviderFactory()).ConfigureContainerCatBuilder(builder  builder.Register(Assembly.GetEntryAssembly()!)).Build().Run();[S1409]利用配置初始化承载环境一个HostBuilderContext上下文由承载针对宿主配置的IConfiguration对象和描述当前承载环境的IHostEnvironment对象组成后者提供的环境名称、应用名称和内容文件根目录路径可以通过前者来指定具体的配置项名称定义在如下这个静态类型HostDefaults中。public static class HostDefaults {public static readonly string EnvironmentKey  environment;public static readonly string ContentRootKey  contentRoot;public static readonly string ApplicationKey  applicationName; }下面我们通过一个简单的实例演示如何利用配置的方式来指定上述三个与承载环境相关的属性。我们定义了如下一个名为FakeHostedService的承载服务并在构造函数中注入IHostEnvironment对象。FakeHostedService派生于抽象类BackgroundService我们在在ExecuteAsync方法中将与承载环境相关的环境名称、应用名称和内容文件根目录路径输出到控制台上。public class FakeHostedService : BackgroundService {private readonly IHostEnvironment _environment;public FakeHostedService(IHostEnvironment environment)  _environment  environment;protected override Task ExecuteAsync(CancellationToken stoppingToken){Console.WriteLine({0,-15}:{1}, nameof(_environment.EnvironmentName), _environment.EnvironmentName);Console.WriteLine({0,-15}:{1}, nameof(_environment.ApplicationName),_environment.ApplicationName);Console.WriteLine({0,-15}:{1}, nameof(_environment.ContentRootPath),_environment.ContentRootPath);return Task.CompletedTask;} }FakeHostedService采用如下形式进行承载。如代码片段所示为了避免输出日志的“干扰”我们调用IHostBuilder接口的ConfigureLogging扩展方法将注册的ILoggerProvider对象全部清除。如果调用Host静态类型的CreateDefaultBuilder方法时传入当前的命令行参数创建的IHostBuilder对象会将其作为配置源所以我们就能以命令行参数的形式来指定承载上下文的三个属性。using App; Host.CreateDefaultBuilder(args).ConfigureLogging(logging logging.ClearProviders()).ConfigureServices(svcs  svcs.AddHostedServiceFakeHostedService()).Build().Run();我们采用命令行的方式启动这个演示程序并利用传入的命令行参数指定环境名称、应用名称和内容文件根目录路径确保路径确实存在。图2所示的输出结果表明应用程序当前的承载环境与基于宿主的配置是一致的。图2 利用配置来初始化承载环境
http://wiki.neutronadmin.com/news/205270/

相关文章:

  • 广东的网站备案自己创建网站怎么得流量钱
  • 公司想做个自己的网站怎么做电子商务网站建设的流程图
  • 南昌 提供网站设计 公司免费查询营业执照
  • 基础网站开发学设计哪个网站好
  • 怎么做一个电子商务网站关键词搜索查找工具
  • 专业网站建设最便宜做网销的一天都在干嘛
  • 做公众号链接的网站公司的做网站
  • 网站如何做子域名国企建筑公司有哪些
  • 趣闲赚seo是什么意思教程
  • 福建建设执业中心网站推荐佛山顺德网站建设
  • 网站基本设置还有哪些网站可以做淘宝活动
  • 网站推广话术wordpress页面内容
  • 深圳市住房和建设局网站公示应用公园制作的app归谁
  • 如何做招聘网站效果评估深圳华强北赛格大厦
  • 大连开发区社保网站书签图片
  • 网站设计内容京东慧采入驻条件及费用2022
  • 用rp怎样做网站精准信息预测
  • 辽宁建设工程质量监督站网站网站的排版好看
  • 东莞做网页建站公司国家工商官网查询
  • 有经验的做网站wordpress评论区插件
  • 做代码的网站深圳专业的网站制作公司
  • 海南做网站的公司logo制作app
  • 个人网站的制作方法个人营业执照网上申请入口官网
  • 开源 企业网站北京app开发定制公司
  • 试玩平台怎么做网站wordpress突然访问不了
  • 网站优化快速排名软件自动化培训机构排名
  • 深圳做二维码网站设计有哪些网站做二手房好的
  • 手机端网站html好看的单页模板wordpress分类目录下文章过多_添加文章目录导航
  • 深圳的网站建设公司 湖南岚鸿展馆设计费用取费标准
  • 做网站 广告收入iis更改默认网站