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

公司网站实名制有赞微商城网页版

公司网站实名制,有赞微商城网页版,有哪些优秀的个人网站,网站开发使用哪种语言创建Service应用#xff0c;是一个服务端开发的必会技能。前言说到服务端应用#xff0c;最常见的就是API服务。除此之外#xff0c;还有一类应用#xff0c;比方一个Socket的服务器。这类型的应用#xff0c;本身没有Web层#xff0c;当然也不属于API服务。通常大家会怎… 创建Service应用是一个服务端开发的必会技能。 前言说到服务端应用最常见的就是API服务。除此之外还有一类应用比方一个Socket的服务器。这类型的应用本身没有Web层当然也不属于API服务。通常大家会怎么做不讲究的做法就是做一个Console应用加载到后台一直跑着。其实还有另外一种做法就是把应用加载到Services里使应用以一个Service来做响应。这样可以依托操作系统的Services管理器来进行统一管理自动运行和故障处理。 Dotnet做Window Service的内容网上有很多。我今天写一个在Linux下做Service的方法。创建Linux下的Service应用创建一个LInux下的Service应用其实很简单就分这么几步1. 用 Worker 模板创建工程如果习惯用VS上创建就找一下Worker Service模板。我是习惯从命令行创建就一条命令% dotnet new worker -o projectname Dotnet会自动造成工程并自动引用Microsoft.Extensions.Hosting包因为这本身是一个Self-Hosting应用。2. 加入Linux Service扩展包其实这就是一个包Microsoft.Extensions.Hosting.Systemd。这个包为应用提供了在Linux下使用Systemd守护进程的基础配置。还是命令行% dotnet add package Microsoft.Extensions.Hosting.Systemd 3. 修改Program.cs其实就是一行代码把第二步引入的包加入应用。修改Program.cspublic static IHostBuilder CreateHostBuilder(string[] args) Host.CreateDefaultBuilder(args).UseSystemd()  // 加入的就是这一行。.ConfigureServices((hostContext, services) {services.AddHostedServiceWorker();});到这儿套路性的工作已经完成。简单吧 我们来看一下现在的工程├── Program.cs ├── Properties │   └── launchSettings.json ├── Worker.cs ├── appsettings.Development.json ├── appsettings.json └── workerdemo.csproj 大家会注意到里面多了一个Worker.cs的类文件。看一下这个文件public class Worker : BackgroundService {private readonly ILoggerWorker _logger;public Worker(ILoggerWorker logger){_logger  logger;}protected override async Task ExecuteAsync(CancellationToken stoppingToken){while (!stoppingToken.IsCancellationRequested){_logger.LogInformation(Worker running at: {time}, DateTimeOffset.Now);await Task.Delay(1000, stoppingToken);}} } 这其实就是加载到Systemd里的服务的模板。我们需要的服务代码需要加到ExecuteAsync(CancellationToken stoppingToken)方法中。 我简单做个例子在里面加入UDP服务看代码public class Worker : BackgroundService {private readonly ILoggerWorker _logger;private readonly IConfiguration _configuration;public Worker(ILoggerWorker logger, IConfiguration configuration){_logger  logger;_configuration  configuration;}protected override async Task ExecuteAsync(CancellationToken stoppingToken){_logger.LogInformation(Worker running at: {time}, DateTimeOffset.Now);UdpClient udpClient  new UdpClient(new IPEndPoint(IPAddress.Parse(127.0.0.1), 8000));while (!stoppingToken.IsCancellationRequested){UdpReceiveResult udpReceiveResult  await udpClient.ReceiveAsync();string message  Encoding.UTF8.GetString(udpReceiveResult.Buffer);Console.WriteLine(${udpReceiveResult.RemoteEndPoint.ToString()} - {message});await udpClient.SendAsync(Encoding.Default.GetBytes(Got), 3, udpReceiveResult.RemoteEndPoint);}} } 这个代码中有两件事需要注意在前边Program.cs中加入UseSystemd()时已经注入了IConfiguration。因此可以在这个方法中直接引入并使用。换句话说就是可以直接读取例如appsetting.json的内容是上边提到的真正的服务响应在ExecuteAsync(CancellationToken stoppingToken)中。这儿没什么特别的就是正常的写法。 上面这个是服务端的程序是响应。下面我简单做个客户端的请求供测试用。就不解释了只列出步骤创建一个工程% dotnet new console -o democlient 修改Program.csstatic async Task Main(string[] args) {UdpClient udpClient  new UdpClient();for (int i  0; i  10000; i){byte[] buffer  new byte[8 * 1024];await Task.Run(() {udpClient.SendAsync(buffer, buffer.Length, new IPEndPoint(IPAddress.Parse(127.0.0.1), 8000));});}while (true){UdpReceiveResult udpReceiveResult  await udpClient.ReceiveAsync();string message  Encoding.UTF8.GetString(udpReceiveResult.Buffer);Console.WriteLine(${udpReceiveResult.RemoteEndPoint.ToString()} - {message});}Console.ReadKey(); } 运行一下看看效果。 到这里Service应用开发的工作已经完成。下面是部署。部署Service应用Linux下面部署一个Service应用只有两个步骤1. 创建Service定义Linux下的每个Service都会有个定义文件。这个文件存在于/etc/systemd/system目录下。下面我给出一个简单的Service模板[Unit] DescriptionDemoProject[Service] Typenotify ExecStartdotnet /yourfolder/yourproject.dll[Install] WantedBymulti-user.target 把这个内容保存为一个文件例如叫demo.service。然后把这个文件复制到/etc/systemd/system下并改为可执行。简单说一下这个文件的一些项Description是服务的名字。不重要启动时你用到的是文件名demo.serviceType服务类型使用Dotnet加载时只能是这种类型。如果把程序编译为自包含程序这个类型可以是simpleExecStart启动程序的命令是全路径的要确保能找得到这个程序。上面例子中dotnet /yourfolder/yourproject.dll是因为dotnet命令是有PATH变量支持的。这个文件的配置项有很多包括定义是否需要自动重启、重启间隔等。如果需要可以去这里查询。2. 启动Service有两种方法。第一种是刷新Service守护% systemctl daemon-reload 刷新守护时守护进程会去/etc/systemd/system目录下寻找新加入的Service文件并启动。第二种是单独启动有一系列命令启动% systemctl start demo.service 停止% systemctl stop demo.service 重启% systemctl restart demo.service 查询状态% systemctl status demo.service 嗯。这就是服务加载和停止了。 注意这种方式加载的Service是完全系统的服务会没有任何输出。如果需要调试一种方式是加文件日志另一种方式是用另一个命令启动% journalctl -u dnsserver.service 当然这种方式只用于调试。正式运行时还应该是上面的方式。 这就是今天的内容希望能帮到大家。感觉有用的话给个三连呗喜欢就来个三连让更多人因你而受益
http://www.pierceye.com/news/809444/

相关文章:

  • 国外互联网资讯网站南宁网站制作费用
  • 建设公司网站要注意哪些蜜雪冰城推广软文
  • 做信息安全的网站博客网站的建设
  • 门户网站建设项目书提升学历是什么意思
  • 上海网站建设极简慕枫塘沽有哪些互联网公司
  • 社区网站如何做官方网站建设哪儿有
  • 做兼职的网站策划书大连中山网站建设
  • 中国摄影网站深圳网站建设龙华
  • 个人网站怎么建立深圳网站建站费用
  • 笔趣阁建站教程网页设计 网站建设啥意思
  • 海门网站开发西安响应式网站建设服务提供商
  • 自适应网站建站哈尔滨市建设安全监察网站
  • nas服务器可以做网站吗电商类网站开发方案
  • 免费的个人的网站网站建设 考虑
  • 医院网站建设的目的高端网站有哪些优势
  • 佛山网站建设首选如何备份wordpress
  • 优化稳定网站排名网站建设需要学什么语言
  • 可以做设计私单的网站硬件开发工程师面试
  • 竞价网站单页网页设计师中级证书有用吗
  • 做网站 简单外包wordpress 插件api
  • 白城网站seo新手怎么建立自己网站
  • 建立用模板建立网站wordpress feed
  • 株洲品牌网站建设优质的杭州网站优化
  • 网站开发在哪个科目核算网站平台怎么做的好处
  • 网站底部模板代码江苏建站系统
  • 写出网站开发的基本流程品牌建设网站
  • 河北省建设机械协会网站双减之下托管班合法吗
  • 江门市城乡建设局网站阿里云万网域名购买
  • 网站推广技术哪家好专业网站开发建设
  • 义乌营销型网站建设淘宝做动图网站