.NET Core 创建Windows服务
发布时间:2020-12-14 02:03:23 所属栏目:Windows 来源:网络整理
导读:.NET Core 创建Windows服务 作者:高堂 原文地址:https://www.cnblogs.com/gaotang/p/10850564.html 写在前面 使用 TopShelf+Autofac+AutoMapper+Quartz+NLog 完成现有项目定时调度任务 1.相关NetGet包 依赖注入 Alexinea.Autofac.Extensions.DependencyInj
.NET Core 创建Windows服务
写在前面使用 TopShelf+Autofac+AutoMapper+Quartz+NLog 完成现有项目定时调度任务 1.相关NetGet包
2.添加Autofac自动映射服务
3.添加AutoMapper自动映射类
public static class AutoMapperExtensions { public static ContainerBuilder ConfigureAutoMapper(this ContainerBuilder builder) { builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies()) .AsClosedTypesOf(typeof(ITypeConverter<,>)) .AsImplementedInterfaces(); builder.RegisterAssemblyTypes(typeof(AutoMapperExtensions).Assembly) .AssignableTo<Profile>().As<Profile>(); builder.Register(c => { var profiles = c.Resolve<IEnumerable<Profile>>(); var context = c.Resolve<IComponentContext>(); return new MapperConfiguration(x => { foreach (var profile in profiles) x.AddProfile(profile); x.ConstructServicesUsing(context.Resolve); }); }).SingleInstance().AsSelf(); builder.Register(c => { var context = c.Resolve<IComponentContext>(); var config = context.Resolve<MapperConfiguration>(); return config.CreateMapper(); }).As<IMapper>(); return builder; } }
public static class ServicesExtensions { public static ContainerBuilder ConfigureSelf(this ContainerBuilder builder) { var services = new ServiceCollection(); // register appsettings.json services.Configure<User>("UserConfig",Settings.Instance.Configuration.GetSection("User")); builder.Populate(services); // register services repositories builder.RegisterAssemblyTypes(typeof(UserRepository).Assembly) .Where(t => t.Name.EndsWith("Repository")) .AsImplementedInterfaces(); builder.RegisterAssemblyTypes(typeof(UserService).Assembly) .Where(t => t.Name.EndsWith("Service")) .AsImplementedInterfaces(); return builder; } } 4.添加Quartz调度任务
public static ContainerBuilder ConfigureQuartz(this ContainerBuilder builder) { // 1) Register IScheduler builder.RegisterModule(new QuartzAutofacFactoryModule()); // 2) Register jobs builder.RegisterModule(new QuartzAutofacJobsModule(typeof(MyJob1).Assembly)); return builder; } 5.添加日志
6.创建TopShelf服务
7.发布并添加Windows服务
cd /d %~dp0 Sample.Topshelf.exe install pause cd /d %~dp0 Sample.Topshelf.exe uninstall pause 源码
参考资料
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- DOS批处理中对含有特殊字符的文件名的处理方法
- windows – 如何使用stdin管道作为gcc的源输入?
- windows-xp – 从XP机器上打开Unix Samba的速度很慢
- windows – 文件夹图标更改不会生效
- Windows Phone 7 – 如何在Windows Phone 7上启动应用程序时
- Haskell removeDirectoryRecursive:Windows上的权限被拒绝
- windows – 用于转储设备管理器中显示的所有设备属性的命令
- .net – 在Windows CE中进行跨进程通信的最佳机制是什么?
- .net – 适用于Windows 7.0的蓝牙低功耗API
- windows – Regedit:从命令提示符查找和导出密钥
推荐文章
站长推荐
- windows server 2008r2 WAMP 报错0xc000007b
- wcf – Windows 8上带有Microsoft帐户的Azure AC
- Clang,Microsoft链接器和标准库
- 在Windows中将cp1252批量转换为utf-8
- windows – 窗口句柄(HWND)是唯一的,还是会被重用
- windows-server-2008 – FTP服务器的建议,允许限
- 在Windows上使用FFMPEG从图像流式传输视频
- active-directory – Windows Server 2012设置“
- 在Windows Server上安装Redis
- Windows命令无法运行报错:is not recognized as
热点阅读