Saturday, February 5, 2011

اخطار مسؤول النظام عند حدوث خطأ

يتطلب المشروع الذي اعمل عليه حاليا ان نقوم بارسال ايميل لمدير النظام عند تسجيل خطأ في البرنامج، وبما أن البرنامج يقوم بالتسجيل في event log وجدت ان الحل الابسط هو استخدام مكتبة EventLogEntry تحت System.Diagnostics. يقوم البرنامج بالبحث عن اي خطأ مصدره البرنامج وارسال ايميل لتنبيه مدير النظام.

 using System;  
 using System.Collections.Generic;  
 using System.Linq;  
 using System.Text;  
 using System.Xml;  
 using System.Diagnostics;  
 using System.Net.Mail;  
 namespace ADSyncNotify  
 {  
   class Program  
   {  
     static void Main(string[] args)  
     {  
       if (args.Length > 1)  
       {  
         DateTime lastHour = DateTime.Now.Subtract(new TimeSpan(0, 1, 0, 0, 0));  
         EventLog eventlog = new EventLog(“Application”);  
         foreach (EventLogEntry evnt in eventlog.Entries)  
         {  
           if (evnt.Source == “OIMPasswordSync” && lastHour < evnt.TimeWritten)  
           {  
             try  
             {  
               MailMessage message = new MailMessage();  
               SmtpClient smtp = new SmtpClient(args[0]);  
               message.From = new MailAddress(args[1]);  
               message.To.Add(args[1]);  
               message.Subject = “AD Password Sync Connector error”;  
               message.Body = “An error occured! Please check the domain controller event log for more details.”;  
               smtp.Send(message);  
             }  
             catch (FormatException fe)  
             {  
               Console.WriteLine(“Invalid email address”);  
             }  
             catch (Exception e)  
             {  
               Console.WriteLine(e.Message);  
             }  
             break;  
           }  
         }  
       }  
       else  
       {  
         Console.WriteLine(“Usage: ADPasswdSync + mail server + OIM admin email address”);  
         Console.WriteLine(“e.g. ADPasswdSync 10.10.10.10 oimadmin@company.com”);  
       }  
     }  
   }  
 }  

No comments:

Post a Comment