نمایش نتایج 1 تا 4 از 4

نام تاپیک: چه طور می توان Exception های رخ داده را به ایمیل سازنده فرستاد؟

  1. #1
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    چه طور می توان Exception های رخ داده را به ایمیل سازنده فرستاد؟

    سلام و وقت بخیر

    سوالی پیش آمد که برای بهتر شدن نرم افزار ها بعد از رخ دادن Exception ، متن خطا رو ایمیل کرد . آیا راهی هست >؟

    سناریو اول این هست که همه جا از Try Catach استفاده کرد و در زمان catch کد مربوط به ایمیل رو ارسال کرد.

    آیا سناریو دیگه ای هست ؟ مثلا نرم افزار های مبهم ساز این قابللیت به نرم افزار اضافه می کنند . چه طور این مورد انجام میشه ؟

  2. #2
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: چه طور می توان Exception های رخ داده را به ایمیل سازنده فرستاد؟

    منم این مورد رو نیاز دارم.
    البته یه مشکلی هم پیش میاد که موقع ارسال اگه دسترسی به اینترنت نباشه یا سرور میل در دسترس نباشه یه اکسپشن دیگه ایجاد میشه.

    بجای تکرار کدها یه کلاس بسازیم که ورودی سازندش کلاسی از نوع اکسپشن باشه. تو کچ ها این کلاس رو فراخوانی کنیم و اکسپشن ایجاد شده رو به ورودی کلاس بدیم. حالا تو داخل کلاس قبل از ارسال خطاها رو تو یه سطر از فایل متنی نگه داری کنیم. و به محض دسترسی به سرور اطلاعات رو ارسال کنیم. به نظر من از هاست استفاده کنید و بتونید یه برنامه مدیریت خطا هم بنویسید برا خودتون. بعد ارسال خطاهای قبلی رو پاک کنید.

    البته امیدوارم دوستان نظرات خوبی بدن چون من خودمم به این مورد نیاز دارم و به راه حل جامعی نرسیدم.
    آخرین ویرایش به وسیله رامین مرادی : پنج شنبه 22 آذر 1397 در 10:38 صبح

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: چه طور می توان Exception های رخ داده را به ایمیل سازنده فرستاد؟

    با سلام
    برای قسمت اول:
    static void Main()
    {
    Application.ThreadException +=
    new ThreadExceptionEventHandler(Application_ThreadExce ption);

    // Your designer generated commands.
    }


    static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
    {

    var fromAddress = new MailAddress("your Gmail address", "Your name");
    var toAddress = new MailAddress("email address where you want to receive reports", "Your name");
    const string fromPassword = "your password";
    const string subject = "exception report";
    Exception exception = e.Exception;
    string body = exception.Message + "\n" + exception.Data + "\n" + exception.StackTrace + "\n" + exception.Source;

    var smtp = new SmtpClient
    {
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
    };
    using (var message = new MailMessage(fromAddress, toAddress)
    {
    Subject = subject,
    Body = body
    })
    {
    //You can also use SendAsync method instead of Send so your application begin invoking instead of waiting for send mail to complete. SendAsync(MailMessage, Object) :- Sends the specified e-mail message to an SMTP server for delivery. This method does not block the calling thread and allows the caller to pass an object to the method that is invoked when the operation completes.
    smtp.Send(message);
    }
    }


    حالا به جای ایمیل، هر کار دیگه ای میشه انجام داد.
    منبع

  4. #4
    کاربر دائمی آواتار shahryari
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آذربايجان
    سن
    40
    پست
    1,236

    نقل قول: چه طور می توان Exception های رخ داده را به ایمیل سازنده فرستاد؟

    سلام
    ارسال از طریق ایمیل صحیح نیست، گاهی پورتش عوض میشه گاهی stmp موقتا غیرفعال میشه و نیاز تایید و فعالسازی دوباره داره و ...... (تجربه ای که خودم دارم تابحال ندیدم ارسال ایمیل با smtp درست درمون کارکنه ینی بگیر نگیر داره!!) درثانی امنیت هم نداره که بخوای یوزر و پسورد ایملت رو بزاری در برنامه
    یه وب سرویس بنویس و متن خطا رو در دیتابیس سرور ذخیره کنید کاری که خود مایکروسافت انجام میده


    We have solved this by creating a simple WCF web service that takes the stack trace, zipped logs etc, which the client posts to it and then let the web service server send the email. This way you don't have to have the SMTP authentication information on the client side, nor do you have to rely on the user to submit the error report via their email client.

    We're now even zipping and submitting client side logs periodically to the backend server via this webservice and analyze those logs to preemptively detect any client side issues before they become problematic to the client
    این کتابخونه هم واسه همین نوشته شده ، البته نحوه کارکردشو اطلاع ندارم
    https://archive.codeplex.com/?p=crashreporterdotnet
    آخرین ویرایش به وسیله shahryari : پنج شنبه 22 آذر 1397 در 10:54 صبح

تاپیک های مشابه

  1. حرفه ای: مشکل وب سرویس (Exception occured: SoapFault exception: [a:DeserializationFailed])
    نوشته شده توسط i-php-i در بخش PHP
    پاسخ: 3
    آخرین پست: چهارشنبه 17 تیر 1394, 17:42 عصر
  2. مشکل در استفاده از توابع (cv::Exception at memory location)
    نوشته شده توسط mostafa_C در بخش برنامه نویسی با MFC و ++Visual C
    پاسخ: 0
    آخرین پست: جمعه 25 اسفند 1391, 00:56 صبح
  3. مشکل در Raise کردن exception در توابع CallBack!!!
    نوشته شده توسط amateur.programmer در بخش C#‎‎
    پاسخ: 3
    آخرین پست: دوشنبه 01 اسفند 1390, 11:45 صبح
  4. آموزش: مدیریت خطاها و استثنائات (Exception) و نمایش پیام مناسب با توجه به خطای رخ داده در دلفی
    نوشته شده توسط M_Maskout در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 5
    آخرین پست: چهارشنبه 17 فروردین 1390, 23:30 عصر
  5. کسی می تونه در مورد exception توضیحاتی به من بده؟
    نوشته شده توسط فرشته صحرا در بخش PHP
    پاسخ: 9
    آخرین پست: دوشنبه 27 فروردین 1386, 20:52 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •