كيفية اختبار ما إذا كان موقع الويب المكتوب بلغة ASP.Net لا يزال على قيد الحياة؟

StackOverflow https://stackoverflow.com/questions/1430481

سؤال

أحتاج إلى كتابة تطبيقات WinForms بسيطة يمكن تشغيلها لاختبار ما إذا كان موقع الويب لا يزال على قيد الحياة وأن موقع الويب هذا قادر على القراءة من قاعدة البيانات.

أنا أستخدم الشيء "(HttpWebResponse)myHttpWebRequest.GetResponse()" بالكامل في c# لاختبار ما إذا كان الموقع على قيد الحياة، لكنني في حيرة بشأن كيفية الحصول على صفحة اختبار في موقع الويب الخاص بي لكتابة شيء ما إلى "الاستجابة" للإشارة إلى أنه كان قادرًا على اختبار اتصاله بقاعدة البيانات.

فيما يلي نموذج التعليمات البرمجية لجانب Winforms الخاص بي (تم نسخه من MSDN):

private void CheckUrl()
{
  try
  {
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.google.com");

    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    myHttpWebResponse.Close();

    label1.Text = myHttpWebRequest.Address.AbsoluteUri;
  }
  catch (WebException e)
  {
    label1.Text = "This program is expected to throw WebException on successful run." +
                                    "\n\nException Message :" + e.Message;

    if (e.Status == WebExceptionStatus.ProtocolError)
    {
      label1.Text = String.Format("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
      label2.Text =String.Format("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
    }
  }
  catch (Exception e)
  {
    label1.Text = e.Message;
  }
}

كنت أتمنى الحصول على بعض المساعدة في جانب نموذج الويب للأشياء للعودة إلى الكود أعلاه.

شكرًا على أي مساعدة يمكن أن تقدمها يا رفاق.

  • ريتشارد
هل كانت مفيدة؟

المحلول

ماذا يحدث عندما يفشل موقعك؟هل يُرجع رمز الحالة 500 أو المهلة؟

طريقة أخرى للنظر إليها:هل تفعل دائمًا شيئًا متوقعًا إذا نجحت؟

يمكنك الاتصال بعنوان URL في تطبيق الويب الخاص بك والذي تعرف أنه سيُرجع رمز استجابة 200 أو سيحتوي على بعض علامات HTML المتوقعة في الاستجابة إذا كانت الأمور تسير على ما يرام.

اطلب من winform الخاص بك استدعاء عنوان URL هذا وفحص Response.status أو النص الموجود في المخزن المؤقت للإخراج لمعرفة العلامات المتوقعة.يجب عليك أيضًا إنشاء مهلة في httprequest الخاص بك.إذا لم يتم تحميل الصفحة خلال المهلة الزمنية، فستحصل على استثناء ويب وستعرف أن الموقع قد فشل.

أيضًا، إذا كانت لديك الميزانية، فهناك خدمات مراقبة خارجية مثل gomez.com يمكنها أتمتة ذلك وتقديم تقارير حول توفر الموقع.

نصائح أخرى

يمكنك إنشاء خدمة ويب داخل المشروع تسمى IAMALIVE وجعلها تُرجع حرفًا واحدًا.

في منطقة WinForms الخاصة بك، استخدم خدمة الويب المذكورة وإذا كانت تعمل، فسيكون موقعك على قيد الحياة.

في جوهر إجابة بابوتشينو:يمكنك بالفعل إنشاء خدمات ويب مضمنة في كود C# خلف صفحات WebForms الخاصة بك عن طريق وضع علامة عليها بـ [WebMethod] يصف.وستكون هذه العناصر موجودة داخل تطبيق الويب، وليس فقط الخادم.

اطلب من صفحة نموذج الويب الخاصة بك فتح اتصال بقاعدة البيانات وتنفيذ شيء بسيط/منخفض التأثير، على سبيل المثال.

select SystemTableId from dbo.[SystemTable] where SystemTableId = 1

حيث SystemTable هو جدول ذو صف واحد.

إذا طرحت الصفحة استثناءً لأي سبب من الأسباب، فاكتب رسالة الاستثناء Response.Write، وإلا Response.Write("SUCCESS") أو ما شابه ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top