Bir windows hizmetinde değişkenleri sürdürmenin kabul edilen yolu nedir?

Her zaman çalışacak bir windows servisim var, ancak sadece son zamandan beri en az 24 saat çalışıyorsa aktif olacak. Bu yüzden en son yüklendiğinden beri zaman ve tarihi saklamalıyım.

Bunu yapmak için App.Config ile şunları yazmayı düşünüyordum:

ConfigurationManager.AppSettings.Set("LastRunTime", DateTime.Now.ToString());

Ancak bu devam ediyor gibi görünmüyor, ancak hizmet yeniden başlatıldığında iyi olmayan önbellek.

Öyleyse bir windows servisi için kalıcı değerler için kabul edilen yöntem nedir?

2
Daha ziyade veriye veri depolamanın oldukça iyi olduğunu düşünüyorum. Belki basit bir metin dosyası daha az hantal olabilir.
katma yazar Jodrell, kaynak
Uygulama ayarlarınız için farklı bir konum belirtebilir misiniz, kullanıcı klasörü? Tahminimce sistemde güvenlik nedeniyle ısrar etmemiştir32?
katma yazar JonAlb, kaynak
System.Configuration.Configuration.Save() veya .SaveAs() kullanamazsınız?
katma yazar GB11, kaynak

2 cevap

Bir veritabanı, basit xml/metin dosyası, kayıt defteri değeri kullanın.

Ayrıca, gereksinimlerinize bağlı olarak, Görev Zamanlayıcı'yı kullanarak basit bir konsol uygulaması çalıştırmak başka bir seçenek olabilir.

6
katma
Bu yeterince adil, ancak veritabanı basit bir değer için aşırı. Peki kabul edilen yol nedir? Konsol uygulamasından yönetime daha önce değindim, bu yönteme ilgi duymadılar.
katma yazar m.edmondson, kaynak
Ne hissettiğini yap en iyisi. DB aşırı ise, bir metin/xml dosyası veya bir kayıt defteri değeri kullanın. Muhtemelen bunun için kişisel tercihleri ​​olan bir 'kabul' yöntemi bulamayacaksınız.
katma yazar ChrisBint, kaynak
Eşzamanlılığa mı ihtiyacınız var? Metin dosyası kullanırken akılda bulundurun.
katma yazar Marc, kaynak

Nesneyi bu makaleye göre dizine ekledim ve @ChrisBint'in kaydettiğimi söylediğine inkar ettim bir metin dosyasına. 'Kabul' olarak aradığım şey buydu, metin dosyalarını yazabileceğimi biliyordum ama aradığım yöntem buydu. Kalıcı veriler için kendi yöntemlerimi yazmak yerine her şeyi yapılandırılmış ve güçlü bir şekilde yazmak istedim.

@Chris sadece bir kısmı cevap verdiğinden beri onu reddettim ve bunu kabul ettim.

1
katma
@ChrisBint - Söylediklerimi anlıyorum, muhtemelen benim için uygun bir soru sormak benim için bir başarısızlık ve muhtemelen gelecekteki bir değer burada olmadığından onu silmeyi düşüneceğim.
katma yazar m.edmondson, kaynak
'Kabul edilmiş'? Kim tarafından? Bu notu takdir etsem de, sorunuz, bir windows servisi için kalıcı değerlerin kabul edilen yönteminin ne olduğunu sordu ve bu bağlantı kesinlikle değil, standart serileştirme teknikleri. Sorunuz ayrıca uygulama ayrıntılarını da sormaz, bunun nasıl yapılabileceğine dair önerilerde bulunur. Buna dayanarak, bir cevap gibi bir şeyi temsil ettiğini hissetmediğim için bunu reddettim (bu konuda dürüst olmak gerekirse, bu soru için olmayacağım.)
katma yazar ChrisBint, kaynak
Windows
Windows
729 Katılımcıların

Windows ile ilgili tüm sorunların çözümüne yanıt arandığı ve paylaşımların yapıldığı bir gruptur. @SerCiTV @Tekpay @Apktanitim kanal/grupların uzantısıdır. https://t.me/joinchat/H1pwvUwqv4etCBtv9Oi_qQ