سلام
امروز آخرین امتحانم دادیم و خلاص .
این برنامه ای رو که ضمیمه کردم دانلود کرده و Build کنید.
نکات:
1 – در متد OnStart ، سازنده شی اصلی رو فراخوانی کردم. (کار این متد مثل متد Main میمونه
و وقتی فراخوانی میشه که کاربر سرویس ما رو Start میکنه)
2 – در متد OnStop هم این شی رو Close (یا در اصل Dispose ) کردم. (این متد هم هنگام Stop کردن
سرویسمون فراخوانی میشه)
3 – Windows Service مثل برنامه اجرایی معمولی نیست که با دابل کلیک کردن روی فایلش
(یا با Ctrl-F5 از منوی VS ) بشه اون رو اجرا کرد ، بلکه نیاز به یه installer داره. برای ایجاد خودکار یه
Installer ، روی فایل Service1.cs (این اسم پیش فرضه) در Solution Explorer کلیک راست کنید ،
گزینۀ Add Installer رو بزنید. حالا پروژه رو Build کنید.
آخرین قدم برای افزودن سرویستون به لیست سرویس های سیستم ، اینه که فایل اجراییتون رو به عنوان
آرگومان به برنامۀ installutil.exe (که همراه با VS در SDK ، نصب میشه) ، به فرم زیر بدین:
installutil [FileName]
مثال:
C:\Projects\WindowsService1\bin\Debug> installutil WindowsService1.exe
(این برنامه در خود Windows وجود نداره ، یعنی از cmd قابل اجرا نیست ، بلکه باید اون رو از طریق
Visual Studio .NET Command Prompt اجرا کنید)
حالا سرویس ما نصب شده و شروع به کار کرده.
برای دیدن اسم سرویس (که در این مثال ، MehdiSvc هست) ، به اینجا برین:
Control Panel – Administrative Tools – Services
به دنبال نام MehdiSvc بگردین ، حالا میتونین Start و Stop کنین و ...
(پس فهمیدیم که نام فایل و نام سرویس ، لزوما یکی نیستن و مستقل از یکدیگرن)
4 – این برنامه ، رویدادها رو در فایل Mehdilog.txt در %System32% ، log میکنه)
در مورد Windows Service میشه به اندازۀ یه کتاب صحبت کرد
برای تکمیل بحث و اطلاعات اضافی ، توصیه میکنم اگه MSDN 2003 رو دارین ، مقاله
Create Windows Services نوشته Billy Hollis رو بخونین.
(یادم رفت بگم ، برای uninstall کردن سرویس ، اول اون رو Stop کنید ، بعد با سویچ
u/ در installutil ، اون رو uninstall کنین.)