Makale numarası: 821794 - Son Gözden Geçirme: 26 Kasım 2007 Pazartesi - Gözden geçirme: 2.7

Windows Services oluşturduğunuzda, en iyi yöntemlerinden bazıları açıklamaları

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Özet

Bu makalede, bir hizmetin yazdığınızda, önlemek, bazı yaygın hataları. Makaleyi, ayrıca Microsoft Windows Services oluşturduğunuzda izlemek için en iyi yöntemler önerir. Bir Windows hizmet programı, bir yordam veya özellikle düşük (yakın donanım) düzeyinde, diğer programları desteklemek için belirli sistem işlevi gerçekleştiren bir işlem var. Microsoft Exchange ve Microsoft SQL Server ve Windows süreölçeri'de bilgisayar saatini ayarlar gibi diğer istemci uygulamalar gibi sunucu ürünleri, Windows Services örnekleridir. Bilgisayarı başlatın ve bir kullanıcı arabirimi olan Windows Hizmetleri otomatik olarak başlatılır.

Daha fazla bilgi

Aşağıdaki yönergeler, bir Windows hizmeti yazarken yararlı olabilir:
  • Hizmetiniz için kullanıcı arabirimi olmadan kullanılması tasarlayın. Hizmet uygulamaları, herhangi özel bir kullanıcı bağlamı dışında çalışan ve kullanıcı araya girmeden istemeniz gerekir. Bu uygulamalar genellikle, arka planda görevleri gerçekleştirin. Kullanıcı müdahalesi çalıştırmak için hizmetinizi tasarlayın.
  • Etkileşimli hizmetler oluşturun. Hizmetin, kullanıcı müdahalesi olmadan yalıtılmış bir hizmet olarak çalışır.

    Windows Hizmetleri aynı örneğine etkileşimli kullanıcı oturumu, pencere ileti saldırılarını oluşabilir. Etkileşimli kullanıcı ekleme ve bir etkileşimli hizmetlere işleminde rasgele kod çalıştırmak.

    Etkileşimli kullanıcı WM_COPYDATA iletinin gönderen kötü amaçlı kod bir yüksek ayrıcalıklı etkileşimli bir hizmet işlemi adres alanına kopyalar ve daha sonra bir WM_TIMER iletisi gönderir, hizmet işlemi, kötü amaçlı kod çalışır. Bu ayrıcalık yükseltme saldırısı dışında Microsoft Terminal Hizmetleri'ni kullanarak bilgisayarda oturum açan bir kullanıcı veya bilgisayara fiziksel erişimi olan bir kullanıcı tarafından gerçekleştirilmiş.
  • Hizmetiniz sevk etmek için önce tüm Assert ifadeleri kaldırın. Microsoft, Assert yöntemi kullanmanızı önermez. Assert yöntemi başarısız oldu, ve sonra kod hata ayıklama seçeneğine sağlayan kod gösteren bir iletişim kutusu görüntüler. Bu nedenle, hizmetinizi sevk etmek için önce Assert ifadeleri kaldırın.
  • Hizmetin, bir güvenlik bağlamında çalışır. Sisteminizi saldırılarından, güvenli yardımcı olacak en alt düzeyde kullanıcı haklarına sahip hizmet çalıştırın. Daha fazla kullanıcı hakları için en az bir kullanıcı hesaplarına verilen daha gerektiriyorsa, hizmetin yönetici kimlik bilgilerine sahip bir kullanıcı olarak çalıştırmayın.

    Ayrıca, yerleşik oturum açmaların (SYSTEM, Anonymous Logon, Local Service ve Network Service) kullanıcı haklarını yükseltmesine güvenlik ilkesini değiştirmeyin. Bunun yerine özel bir kullanıcı hesabı oluşturun ve sonra hesabın, hizmetinizi gerektiren kullanıcı hakları vermelisiniz. Ağ kimlik bilgileri gerektiriyorsa, etki alanı hesabı kullanın. Ağ kimlik bilgilerini gereksiniminiz varsa, yerel bir hesap kullanın. Sınırlı kullanıcı haklarına sahip özel bir hesap oluşturma, daha fazla zaman harcamaya, ancak bu, ya da hizmetin çok fazla kullanıcı haklarıyla veya işletim sistemiyle birlikte gelen bir hesaba kullanıcı hakları eklediğinizde çalıştırın, daha daha güvenlidir.
  • Yazdırma ve eşlenen sürücüler Windows Hizmetleri'nde kullanmaktan kaçının. Yazdırma ve eşlenen sürücüler genellikle belirli bir kullanıcı veya kullanıcı grubu için kullanılabilir. Yazdırma veya eşlenmiş sürücü kullanıyorsanız, hizmetinizi yazdırma veya eşlenen sürücülere erişmek için gereken kullanıcı haklarına sahip bir hesap altında çalıştığını doğrulayın. Genelde, oturumu kapatın ve sonra bilgisayarda oturum açtığınızda yeniden eşlenen sürücüler bağlantısını kesin.
  • Kullanıcı Profil ayarları, Windows Services yazdığınızda güvenmek kaçının.

Referanslar

Windows Hizmetleri hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network Web sitelerini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/Aa983650(VS.71).aspx (http://msdn2.microsoft.com/en-us/library/Aa983650(VS.71).aspx)

http://msdn2.microsoft.com/en-us/library/aa984074(VS.71).aspx (http://msdn2.microsoft.com/en-us/library/aa984074(VS.71).aspx)

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbvs2005applies kbvs2005swept kbdevsecurity kbserviceprocess kbservice kbserver kbinfo KB821794 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:821794  (http://support.microsoft.com/kb/821794/en-us/ )