Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 39816|Yanıt: 3

[.NET Core] Linux'ta .NET Core tabanlı bir hizmet

[Bağlantıyı kopyala]
2020-10-29 14:20:02 tarihinde yayınlandı | | | |
.NET CORE 3.0, Worker Services için yeni proje şablonları ekler; bu şablonlar uzun süredir çalışan arka plan servisleri yazmak ve bunları Windows servisi veya Linux daemonları olarak kolayca dağıtmak için kullanılabilir. Eğer kurulan vs2019 Çin versiyonuysa, İşçi Hizmetleri bir işçi rolü haline gelir.

Linux sistem ortamı: CentOS 8 x64-bit

Yeni bir İşçi Hizmeti projesi oluşturun

İlk olarak, yeni bir İşçi Hizmeti projesi oluşturmak için VS 2019'u açın.



Linux hizmetleri, eklemem gerekiyor:

Eğer bu bir Windows hizmeti ise, eklemeniz gerekecek:

Bir dizi programı birden fazla yerde çalıştırmak istiyorsanız, aynı anda iki paket yükleyebilirsiniz. CreateHostBuilder'da UseWindowsService() ve UseSystemd() ekleyin.



Proje tarafından uygulanan işlev, /test/file.txt dosyasına loglar yazmaktır ve ana kod şöyledir:



WriteFile görev kodu şöyledir:

Yetki sorunları nedeniyle program /test klasörünü otomatik olarak oluşturamaz; bu klasör aşağıda tartışılacaktır.

CentOS'a hizmetleri dağıtın

Evet.NET Core çalışma zamanını kur(ASP.NET Core desteği hariç)




ASP.NET Core'u destekleyen bir çalışma zamanı kurmak istiyorsanız, aşağıdaki komutu çalıştırabilirsiniz:

[kök@localhost~]# dotnet --list-runtimes
Microsoft.NETCore.App 3.1.7 [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]


/test klasörü oluşturun ve izinleri aşağıdaki gibi verin:

/etc/systemd/system klasörü altında, itsvse.service servis yapılandırma dosyasını aşağıdaki şekilde oluşturun:

Hizmet hesapları ekle ve klasörler oluştur

Job.Service'i /home/dotnetuser/job dizinine yayınlayın ve yapılandırmayı aşağıdaki şekilde yayınlayın:



Servisi aç

Hizmet başladıktan sonra, aşağıdaki şekilde gösterildiği gibi dosyaları normal şekilde yazabildiğinizi görebilirsiniz:



Kaynak kodu indirme:

Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfenYanıt


(Son)




Önceki:ASP.NET WebAPI, dönüş arayüzü modeli formatını birleştirmek için MessageHandlers kullanır
Önümüzdeki:HttpSelfHostServer tabanlı konsol web API hizmeti
 Ev sahibi| 2020-10-30 09:28:44 tarihinde yayınlandı |
Örnek çıktı:
bilgi: ExampleHostedService[0]
//           1. StartAsync çağrıldı.
bilgi: ExampleHostedService[0]
//           2. OnStarted çağrıldı.
bilgi: Microsoft.Hosting.Lifetime[0]
Başvuru başladı. Kapanmak için Ctrl+C tuşlarına basın.
bilgi: Microsoft.Hosting.Lifetime[0]
Barındırma ortamı: Prodüksiyon
bilgi: Microsoft.Hosting.Lifetime[0]
İçerik kök yolu: .. \app-lifetime\bin\Debug\net5.0
bilgi: ExampleHostedService[0]
//           3. OnStopping çağrıldı.
bilgi: Microsoft.Hosting.Lifetime[0]
Uygulama kapanıyor...
bilgi: ExampleHostedService[0]
//           4. StopAsync çağrıldı.
bilgi: ExampleHostedService[0]
//           5. OnStop çağrıldı.


 Ev sahibi| 2020-11-6 13:53:00 tarihinde yayınlandı |
public abstract class BackgroundService : IHostedService, IDisposable

IHostedService arayüzü, ASP.NET Core web uygulamalarında (.NET Core 2.0 ve sonrasında) veya herhangi bir süreç/hostta (IHost kullanılarak .NET Core 2.1 ile başlayarak) arka plan görevlerini başlatmak için pratik bir yol sunar. En büyük avantajı, bunu ana bilgisayar kapanmak üzereyken yapabiliyor olmasıdırBir ihtimal varArka plan görevleri için kodları temizlemek için normal bir iptal yapın.
 Ev sahibi| 2021-4-27 tarihinde 15:57:28 tarihinde yayınlandı |
Arka uç hizmet genişletme yöntemini kaydet

Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com