ID Artikel: 816169 - Kajian Terakhir: 04 Oktober 2011 - Revisi: 2.0

Cara membuat sebuah proyek setup aplikasi Windows Service di Visual C#

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini menjelaskan cara membuat sebuah proyek setup aplikasi Windows Service (sebelumnya bernama "layanan NT"). Untuk melakukan hal ini, Anda harus terlebih dahulu membuat solusi yang berisi layanan Windows yang sederhana proyek yang menulis entri log aplikasi. Anda kemudian tambahkan setup proyek untuk solusi untuk menginstal layanan jendela. Akhirnya, Anda mulai layanan. Anda dapat memulai layanan dengan menggunakan layanan item di dalam folder Administrative Tools dalam Start menu.

Persyaratan

Daftar berikut menguraikan perangkat keras yang disarankan, perangkat lunak, jaringan infrastruktur dan paket layanan yang Anda harus:
  • Microsoft Windows 2000, Windows XP, Windows Server 2003, atau sistem operasi Microsoft kemudian dengan.NET Framework diinstal
  • Microsoft Visual Studio.NET Enterprise, Microsoft Visual Studio.NET Enterprise arsitek, Microsoft Visual Studio 2005, atau Microsoft Visual Studio 2008.
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan layanan Windows. Jika Anda tidak akrab dengan Windows Services, lihat rujukan pertama di REFERENSI bagian dari artikel ini.

Artikel ini juga mengasumsikan yang memiliki account pengguna yang Anda gunakan untuk menginstal dan menjalankan layanan ini izin yang harus Anda miliki untuk menginstal dan untuk memulai layanan, dan juga memiliki izin yang harus Anda miliki untuk mengakses log peristiwa.

Membuat proyek Setup untuk layanan Windows

Bagian ini menjelaskan bagaimana cara membuat layanan Windows proyek, dan bagaimana menggunakan proyek dikompilasi setup untuk menginstal layanan Windows.

Membuat proyek layanan Windows

  1. Mulai Microsoft Visual Studio.
  2. Pada Berkas menu, titikBaru, lalu klik Project.
  3. Klik Visual C# proyek di bawah Jenis proyek, lalu klik Windows Service di bawah Pola acu.

    Catatan Pada Visual Studio 2005 atau Visual Studio 2008, memperluas Visual C# di bawah Jenis proyek, klik Windows, lalu klik Windows Service di bawah Pola acu.
  4. Jenis LogWriterService dalam Nama kotak teks, dan kemudian ketik C: \ dalam Lokasi kotak teks. Klik Oke.
  5. Dalam solusi Explorer, Klik kanan Service1.cs, lalu klik Lihat Kode.
  6. Dalam OnStart event handler, menggantikan Komentar dengan kode berikut:
    EventLog.WriteEntry("My simple service started.");
  7. Pada solusi Explorer, klik dua kaliService1.cs.
  8. Dalam jendela kode Editor, klik kananLihat desain, lalu klikProperti
  9. Di jendela Properties, klikTambahkan Installer link.
  10. Di panel properti untukServiceInstaller1, mengubah ServiceNameproperti untuk Service1.
  11. Dalam jendela kode Editor dalam Design view, Klik ServiceProcessInstaller1.
  12. Di panel properti, mengubahRekening properti untuk LocalSystem (The LocalService dan NetworkService nilai tersedia hanya dalam Microsoft Windows XP).

Menggunakan proyek Setup dikompilasi untuk menginstal layanan Windows

Setelah Anda menyelesaikan langkah-langkah di bagian sebelumnya untuk mengkonfigurasi proyek layanan Windows, ikuti langkah berikut untuk menambahkan penyebaran proyek yang paket layanan aplikasi sehingga aplikasi layanan dapat diinstal:
  1. Menambahkan sebuah proyek baru untuk proyek LogWriterService Anda. Untuk melakukannya, ikuti langkah-langkah berikut:
    1. Dalam solusi Explorer, klik kanan Solusi 'LogWriterService' (1 proyek), arahkan ke Tambahkan, lalu klik Proyek baru.
    2. Klik Setup dan penyebaran proyek di bawah Jenis proyek, lalu klik Setup proyek di bawah Pola acu.
    3. Dalam Nama kotak teks, ketik ServiceSetup.
    4. Jenis C: \ dalam Lokasi kotak teks, dan kemudian klik Oke.
  2. Memberitahu penyebaran proyek apa paket. Untuk melakukannya, ikuti langkah berikut:
    1. Dalam solusi Explorer, klik kanan ServiceSetup, arahkan ke Tambahkan, lalu klik Proyek Output
    2. Dalam Menambahkan proyek Output grup dialog kotak, di Project kotak, klik LogWriterService
    3. Klik Output utama, lalu klik Oke.
  3. Untuk instalasi benar, menambahkan hanya utama output. Untuk menambahkan tindakan kustom, ikuti langkah berikut:
    1. Dalam solusi Explorer, klik kanan ServiceSetup, arahkan ke Lihat, lalu klik Tindakan kustom
    2. Klik kanan Tindakan kustom, dan kemudian Klik Menambahkan Custom tindakan.
    3. Klik Folder aplikasi, dan kemudian Klik Oke.
    4. Klik Utama output dari LogWriterService (Aktif), lalu klik Oke.

      Perhatikan bahwa Keluaran utama muncul di bawah Menginstal, Komit, Kembalikan dan Bongkar.
  4. Secara default, proyek-proyek setup tidak termasuk dalam membangun konfigurasi. Untuk membangun solusi, gunakan salah satu metode berikut:
    • Metode 1
      1. Klik kanan LogWriterService, dan kemudian Klik Bangun.
      2. Klik kanan ServiceSetup, lalu klik Bangun.
    • Metode 2
      1. Pada Bangun menu, klik Configuration Manager untuk membangun solusi keseluruhan.
      2. Klik untuk memilih Bangun kotak centang untuk ServiceSetup.
      3. Tekan F7 untuk membangun seluruh solusi. Ketika solusi dibangun, Anda memiliki paket instalasi lengkap yang tersedia untuk layanan.
  5. Untuk menginstal layanan baru dibangun, klik kananServiceSetup, lalu klik Menginstal.
  6. Dalam ServiceSetup kotak dialog, klikBerikutnya tiga kali. Pemberitahuan bahwa bar progres muncul sementara layanan menginstal.
  7. Ketika layanan diinstal, klikTutup.

Daftar kode lengkap

Service1.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;

namespace LogWriterService
{
	public class Service1 : System.ServiceProcess.ServiceBase
	{
		/// <summary> 
		/// Required designer variable.
		/// </summary>
		private System.ComponentModel.Container components = null;

		public Service1()
		{
			// The Windows.Forms Component Designer must have this call.
			InitializeComponent();

			// TODO: Add any initialization after the InitComponent call
		}

		// The main entry point for the process
		static void Main()
		{
			System.ServiceProcess.ServiceBase[] ServicesToRun;
	
			// More than one user service may run in the same process. To add
			// another service to this process, change the following line to
			// create a second service object. For example,
			//
			//   ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()};
			//
			ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() };

			System.ServiceProcess.ServiceBase.Run(ServicesToRun);
		}

		/// <summary> 
		/// Required method for Designer support - do not modify 
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			components = new System.ComponentModel.Container();
			this.ServiceName = "Service1";
		}

		/// <summary>
		/// Clean up any resources that are being used.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		/// <summary>
		/// Set things in motion so your service can do its work.
		/// </summary>
		protected override void OnStart(string[] args)
		{
			EventLog.WriteEntry("My simple service started.");
		}
 
		/// <summary>
		/// Stop this service.
		/// </summary>
		protected override void OnStop()
		{
			// TODO: Add code here to perform any tear-down necessary to stop your service.
		}
	}
}

Memverifikasi bahwa ia bekerja

  1. Di Panel kontrol, klik dua kali Alat administratif, kemudian klik dua kali Layanan
  2. Klik kanan Service1, lalu klikMulai
  3. Gunakan salah satu metode berikut untuk memverifikasi bahwa acara login dalam acara log:
    • Metode 1
      1. Di Panel kontrol, klik dua kali Alat administratif, kemudian klik dua kali Peraga Peristiwa.
      2. Klik Aplikasi Log dalam pane kiri, dan kemudian mencari peristiwa log untuk layanan dari sisi kanan.
    • Metode 2
      1. Dalam Server Explorer, memperluas Server, memperluas ComputerName, memperluas Peristiwa Log, memperluas Aplikasi, dan kemudian memperluas Service1. Ingat bahwa Service1 adalah nama kelas, tidak layanan itu sendiri. Oleh karena itu, Service1 digunakan sebagai nama aplikasi. (Itu berada di luar ruang lingkup artikel ini untuk menjelaskan bagaimana untuk menyesuaikan nama.)
      2. Gerakkan kursor atas entri log. Catatan kedua dari atas harus membaca "Layanan sederhana saya mulai".

Mengatasi masalah

Dokumentasi Framework SDK menyatakan sebagai berikut:
Dikompilasi file eksekusi yang menciptakan layanan aplikasi proyek harus diinstal pada server sebelum proyek dapat berfungsi dengan cara yang berarti. Anda tidak dapat debug atau menjalankan aplikasi layanan dengan menekan F5 atau F11; Anda tidak dapat segera menjalankan layanan atau melangkah ke dalam kode. Sebaliknya, Anda harus menginstal dan menjalankan layanan Anda, dan kemudian melampirkan debugger untuk proses layanan.
Untuk informasi lebih lanjut, kunjungi Website Microsoft Developer Network (MSDN) berikut situs:
Debug aplikasi layanan Windows.aspx http://msdn2.Microsoft.com/en-us/library/aa984342 (VS.71) (http://msdn2.microsoft.com/en-us/library/aa984342(VS.71).aspx)

REFERENSI

Untuk membuat layanan Windows berguna yang menunjukkan bagaimana menginstal, cara untuk menguji, dan bagaimana untuk men-debug layanan, kunjungi berikut Website MSDN situs:
Pendahuluan untuk Windows Aplikasi Layanan.aspx http://msdn2.Microsoft.com/en-us/library/Aa983650 (VS.71) (http://msdn2.microsoft.com/en-us/library/Aa983650(VS.71).aspx)
Untuk informasi lebih lanjut, lihat artikel berikut dari edisi Desember 2001 MSDN Magazine:
Layanan Windows: Kelas dasar baru dalam.NET membuat menulis Layanan Windows mudah
http://MSDN.Microsoft.com/msdnmag/Issues/01/12/NetServ/default.aspx (http://msdn.microsoft.com/msdnmag/issues/01/12/NetServ/default.aspx)

Berlaku bagi:
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# 2008 Express Edition
Kata kunci: 
kbeventlog kbsetup kbserviceprocess kbservice kbhowtomaster kbmt KB816169 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:816169  (http://support.microsoft.com/kb/816169/en-us/ )