This is a mirror of official site: http://jasper-net.blogspot.com/

תמיכה ב WindowsService בזמן פיתוח

| Thursday, June 17, 2010
בעבודה עם WindowsService קיימת אי נוחות בסביבת הפיתוח.

אי אפשר סתם כך להריץ אותו ב VisualStudio (לא ניתן ללחוץ F5 ולהריץ).
יש צורך להוסיף שורה שטוענת את ה Debugger , זו שורה שנוספת לקוד על כל המשתמע מכך, ויש גם לדאוג שלא תופיע בסביבת Realese.
לא ניתן להדפיס הודעות ל Console
סדרת פוסטים זו , נועדה כדי לפתור בעיות אלו.

הרצת ה Service כ Console בזמן debug.

כדי להריץ את ה Service בלחיצת F5 (או סתם כך משורת הפקודה) , יש ליצור הבחנה בין הסביבה בה רצה האפליקציה כ Service לבין הסביבה בה רצה האפליקציה שלא כ Service.

הפתרון הפשוט הוא, לבצע אבחנה האם למשתמש יש אינטראקציה עם שלחן העבודה. למי אין? ל WindowsService (אלא אם כן הוגדר אחרת – ולזה ניתן פתרון אחר).

בעת עליית המערכת נבדוק:
if (Environment.UserInteractive())
בדיקה זו תספק כמעט את כל הפתרון, וכך נוכל לבדל בין שתי סביבות ההרצה.

if (Environment.UserInteractive)
{
RunServiceInConsole();
}
else
{
RunAsWindowsService();
}

המתודה RunAsWindowsService תספק את המימוש הרגיל

       private static void RunService()
       {
           ServiceBase.Run(new[] { new MyService() });
       }

Read more: Yitzhak Gootvilig's Blog

Posted via email from .NET Info

0 comments: