ServiceBase.OnStart(String[]) Metode

Definisi

Saat diimplementasikan dalam kelas turunan, dijalankan ketika perintah Mulai dikirim ke layanan oleh Service Control Manager (SCM) atau ketika sistem operasi dimulai (untuk layanan yang dimulai secara otomatis). Menentukan tindakan yang akan diambil ketika layanan dimulai.

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())

Parameter

args
String[]

Data yang diteruskan oleh perintah mulai.

Keterangan

Gunakan OnStart untuk menentukan pemrosesan yang terjadi saat layanan menerima perintah Mulai. OnStart adalah metode di mana Anda menentukan perilaku layanan. OnStart dapat mengambil argumen sebagai cara untuk meneruskan data, tetapi penggunaan ini jarang terjadi.

Caution

Jangan gunakan konstruktor untuk melakukan pemrosesan yang seharusnya ada di OnStart. Gunakan OnStart untuk menangani semua inisialisasi layanan Anda. Konstruktor dipanggil ketika aplikasi yang dapat dieksekusi berjalan, bukan ketika layanan berjalan. Executable berjalan sebelum OnStart. Ketika Anda melanjutkan, misalnya, konstruktor tidak dipanggil lagi karena SCM sudah menyimpan objek dalam memori. Jika OnStop merilis sumber daya yang dialokasikan di konstruktor daripada di OnStart, sumber daya yang diperlukan tidak akan dibuat lagi saat kedua kali layanan dipanggil.

Layanan dapat diatur untuk memulai secara otomatis ketika komputer memulai ulang dengan mengatur StartType pada alat penginstal layanan ke Automatic. Dalam situasi seperti itu, OnStart akan dipanggil pada startup sistem.

OnStart diharapkan akan ditimpa di kelas turunan. Agar layanan berguna, OnStart dan OnStop keduanya harus diimplementasikan di kelas layanan Anda.

Memproses argumen inisialisasi untuk layanan dalam OnStart metode , bukan dalam metode Utama. Argumen dalam args array parameter dapat diatur secara manual di jendela properti untuk layanan di konsol Layanan. Argumen yang dimasukkan di konsol tidak disimpan; mereka diteruskan ke layanan berdasarkan satu kali ketika layanan dimulai dari panel kontrol. Argumen yang harus ada ketika layanan dimulai secara otomatis dapat ditempatkan dalam nilai string ImagePath untuk kunci registri layanan (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nama> layanan). Anda dapat memperoleh argumen dari registri menggunakan GetCommandLineArgs metode , misalnya: string[] imagePathArgs = Environment.GetCommandLineArgs();.

Berlaku untuk

Lihat juga