سؤال

حسنا، أحاول أن أحصل على ملف سجل الأخطاء لموقع الويب الذي يعمل على ASP.NET و C #.

حاولت التخزين للقيادة مع المسار العادي. توقع ذلك لأنه في كود C # (الرمز وراء الصفحة) سوف يلتقط الخادم وتخزينه هناك. (في النهاية هو رمز يتم تنفيذه على الخادم)

لسوء الحظ بالنسبة لي هذا ليس صحيحا. يتم حفظه على الجهاز المحلي الذي يفتح العميل الذي يفتح الموقع.

كيف يمكنك إجبارها على آلة الخادم؟

أريد أن كل من سجلات الخطأ في مكان واحد. أي اقتراحات حول القراءة أو كيفية القيام بذلك.

   string path = "C:\\WebSite";
   string error = "error";          
   try
    {
      // check if dir exists if it does i add file name to the path
      // i removed code to keep it simple
      path += "\\logs.txt";

      FileStream log_fs = 
              new FileStream(path, FileMode.Append, FileAccess.Write);
      StreamWriter log_sw = 
              new StreamWriter(log_fs);
      string log = String.Empty;

      // formate log string using error message

      log_sw.Write(log);
      log_sw.Close();
      log_fs.Close();
   }
   catch (Exception ex)
   {
        // here I e-mail the error in case logging failed
   }

سيقوم هذا الرمز بإنشاء ملف على الجهاز المحلي، بدلا من الخادم

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

المحلول

يمكنك تسجيل الدخول إلى أي موقع على خادم الويب (أن حساب مستخدم ASPNET يحتوي على إذن بالكتابة إليه) مع رمز مثل هذا:

string log = String.Empty;

// format log string using error message

try
{
    using (StreamWriter logFile = new StreamWriter(@"C:\WebSite\logs.txt", true))
    {
        logFile.WriteLine(log);
    }
}
catch
{
    // here I e-mail the error in case logging failed
}

سيؤدي ذلك إلى كتابة الملف إلى خادم الويب الذي يستضيف موقع الويب. الآن، إذا كنت تقوم بتشغيل موقع الويب محليا أثناء التنمية وأنت تستخدم إما خادم الويب المدمج أو IIS، فسيكون بالطبع سيتم إنشاء الملف على جهازك عند اختبار موقع الويب محليا.

نصائح أخرى

للإجابة على جزء اقتراح سؤالك، هل فكرت في استخدام محمة, ، سوف يقوم بتسجيل الأخطاء إلى مخازن مختلفة:

ملف قاعدة بيانات Microsoft SQL Server Server (OracleErrorlog) ملف قاعدة بيانات SQLite (الإصدار 3) Microsoft Access (Accesserrorlog) Vistadb (VistadBerrorlog) ملفات RAM XML فضفاضة XML (في الذاكرة)

أو إرسال عبر البريد الإلكتروني، تويتر

المهد سهل للغاية الإعداد وفعالة للغاية

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