سؤال

أرغب في إنشاء تطبيق Windows صغير سينتقل تلقائيًا كل فترة إلى موقعي ويتحقق مما إذا كان يعمل بشكل جيد، أو إذا وجده معطلاً، أو لا يعمل، أو يحتوي على خطأ "أمثلة:404، خطأ في الشبكة، فشل الاتصال بقاعدة البيانات" ستظهر رسالة على شاشتي.

كيف يمكنني معرفة أن هناك خطأ برمجياً باستخدام أي لغة .NET؟

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

المحلول

وانه من السهل جدا أن تفعل مع WebClient. انها تبدو شيئا مثل هذا:

    WebClient client = new WebClient();
    try
    {
        string response =
            client.DownloadString("http://www.example.com/tester.cgi");

        // We at least got the file back from the server

        // You could optionally look at the contents of the file
        // for additional error indicators      
        if (response.Contains("ERROR: Something"))
        {
            // Handle
        }
    }
    catch (WebException ex)
    {
        // We couldn't get the file.
        // ... handle, depending on the ex
        //
        // For example, by looking at ex.Status:
        switch (ex.Status)
        {
            case WebExceptionStatus.NameResolutionFailure:
                // ...
            break;
            // ...
        }
    }

هل يمكن ربط ما يصل إلى الحدث Timer على Tick أو شيء لجعل دوري الاختيار.

نصائح أخرى

لماذا؟ يمكنك الحصول على حل أفضل بكثير رخيصة من مزود مثل RedAlert

والشيء الجميل في هذا هو:

1) انها تجارب موقعك من خارج جدار الحماية الخاص بك، لذلك فإنه يمكن الكشف عن مجموعة متنوعة من المشاكل.

2) وهو 3rd الطرف محايد حتى تتمكن من إثبات الجهوزية إذا كنت بحاجة إلى لجيش تحرير السودان.

و3) لقسط صغير يمكن أن يكون لديك شيء ومحاولة تشخيص المشاكل.

و4) ما في وسعها الصفحة أو البريد الإلكتروني عند وجود مشكلة.

و5) لا تحتاج إلى تكليف خادم جديد.

والجيز، I يبدو وكأنه إعلان للرجال، ولكن أعدكم بأنني لا عمل لهم أو الحصول على رشوة. لقد كنت مجرد راضيا عن الخدمة لخدمتنا.

وراجع للشغل: راجعت التسعير وحوالي 20 $ لكل موقع / شهر. لذلك يمكن أن ربما تدفع لمدة سنة من الخدمة في وقت أقل من الوقت سيستغرق لبناء ذلك بنفسك.

والرغبة في أداء نفس الوظائف نظرت لأول مرة في حلول الطرف الثالث. واحد خدمة معينة التي هي خالية، وكان دقيقا إلى حد ما هي MonitorUs .

إذا، ومع ذلك، كنت ترغب في بناء الخاصة بك ثم أود أن توصية واحدة. النظر في استخدام طلب رئيس بدلا من طلب الحصول على:

<اقتباس فقرة>   

وهذه الطريقة الرأس مطابق إلى GET   إلا أن الملقم يجب أن لا عودة   رسالة الجسم في الاستجابة. ال   من metainformation الواردة في HTTP   رؤوس استجابة لطلب HEAD   يجب أن تكون مطابقة للمعلومات   أرسلت ردا على طلب GET.   ويمكن استخدام هذه الطريقة للحصول على   من metainformation عن الكيان   يدل على ذلك الطلب، دون   نقل كيان الجسم نفسه.   وغالبا ما تستخدم هذه الطريقة للاختبار   الروابط التشعبية للتأكد من صحتها،   إمكانية الوصول، والأخيرة   تعديل. w3.org

وهنا <لأ href = "http://www.eggheadcafe.com/tutorials/aspnet/2c13cafc-be1c-4dd8-9129-f82f59991517/the-lowly-http-head-reque.aspx" يختلط = "نوفولو noreferrer "> وصلة إلى المقالة بيتر برومبرج أن يوضح كيفية تنفيذ طلب رئيس في C #.

استخدم الكائن System.Net.WebClient. انها أسهل استخداما من HttpWebRequest. أنه يحتوي على "DownloadString" الطريقة التي سيتم تحميل محتويات URL إلى سلسلة. قد هذا الأسلوب أيضا رمي الخطأ WebException إذا إرجاع الخادم 500. على الأخطاء الأخرى التي يمكن تحليل سلسلة ثم ابحث عن الكلمات الرئيسية.

استخدم HttpWebRequest، وألفه في صيدا محاولة لWebException. سوف رمز الخطأ في كائن استثناء تعطيك التعليمات البرمجية. 404، وما إذا كان على بعد 500، هل يمكن طباعة الرسالة.

إذا قمت بذلك، إنشاء صفحة خاصة أن يمارس أي منظومات فرعية خاصة، مثل قاعدة بيانات، ملف IO، وما إلى ذلك، ويخدم حتى النتائج في نص عادي، وليس لغة تأشير النص الفائق. هذا سيسمح لك لتحليل البيانات التي تم إرجاعها أسهل، وسوف أيضا التقاط الأشياء مثل مشاكل DB أو IO التي قد لا تعطيك خطأ 404 أو 500 HTTP.

جرب مدير تطبيقات Adventnet (http://www.manageengine.com/products/applications_manager/)، فهو مجاني لـ 5 شاشات، ويوفر إمكانات مراقبة ممتازة

يمكنك تكوين الإجراءات التي يمكن القيام بها في حالة الفشل مثل إرسال البريد الإلكتروني وما إلى ذلك.

إذا كنت تفضل الحصول على البريد الإلكتروني / SMS عندما المواقع الخاصة بك إلى أسفل، حاول هل مواقع بلدي حتى الحل على شبكة الإنترنت.

scroll top