Aracılığıyla paylaş


ServiceBase.OnStart(String[]) Yöntem

Tanım

Türetilmiş bir sınıfta uygulandığında, Service Control Manager (SCM) tarafından hizmete bir Başlat komutu gönderildiğinde veya işletim sistemi başlatıldığında (otomatik olarak başlayan bir hizmet için) yürütülür. Hizmet başlatıldığında gerçekleştirilecek eylemleri belirtir.

protected:
 virtual void OnStart(cli::array <System::String ^> ^ args);
protected virtual void OnStart (string[] args);
abstract member OnStart : string[] -> unit
override this.OnStart : string[] -> unit
Protected Overridable Sub OnStart (args As String())

Parametreler

args
String[]

Start komutu tarafından geçirilen veriler.

Açıklamalar

Hizmet bir Başlat komutu aldığında gerçekleşen işlemeyi belirtmek için kullanın OnStart . OnStart , hizmetin davranışını belirttiğiniz yöntemdir. OnStart bağımsız değişkenleri veri geçirmenin bir yolu olarak alabilir, ancak bu kullanım nadirdir.

Dikkat

içinde olması OnStartgereken işlemleri gerçekleştirmek için oluşturucuyu kullanmayın. Hizmetinizin tüm başlatma işlemlerini işlemek için kullanın OnStart . Oluşturucu, hizmet çalıştırıldığında değil, uygulamanın yürütülebilir dosyası çalıştırıldığında çağrılır. Yürütülebilir dosya öncesinde OnStartçalışır. Örneğin devam ettiğinizde, SCM nesneyi zaten bellekte tuttuğundan oluşturucu yeniden çağrılmıyor. içindeki yerine OnStartoluşturucuda ayrılan kaynakları serbest bırakırsaOnStop, hizmet ikinci kez çağrıldığında gerekli kaynaklar yeniden oluşturulmaz.

Hizmet yükleyicisi olarak ayarlanarak StartType bilgisayar yeniden başlatıldığında hizmetler otomatik olarak başlatılacak şekilde Automaticayarlanabilir. Böyle bir durumda, OnStart sistem başlangıcında çağrılır.

OnStart türetilmiş sınıfta geçersiz kılınması beklenir. Hizmetin yararlı OnStart olması ve OnStop her ikisinin de hizmet sınıfınızda uygulanması gerekir.

Main yönteminde değil yöntemindeki OnStart hizmet için işlem başlatma bağımsız değişkenleri. Parametre dizisindeki args bağımsız değişkenler, Hizmetler konsolundaki hizmetin özellikler penceresinde el ile ayarlanabilir. Konsola girilen bağımsız değişkenler kaydedilmez; denetim masasından başlatıldığında hizmete bir kerelik olarak geçirilir. Hizmet otomatik olarak başlatıldığında mevcut olması gereken bağımsız değişkenler, hizmetin kayıt defteri anahtarının ImagePath dize değerine (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name>) yerleştirilebilir. Bağımsız değişkenleri kayıt defterinden almak için yöntemini kullanabilirsiniz GetCommandLineArgs , örneğin: string[] imagePathArgs = Environment.GetCommandLineArgs();.

Şunlara uygulanır

Ayrıca bkz.