2017-01-20 2 views
2

У меня есть сайт C# ASP.net. Локально я могу запустить его в отладке и пройти через код, чтобы понять, почему все работает, но когда он размещен на моем сайте, я не могу этого сделать.Отладка живого веб-сайта ASP.net

Каков наилучший способ отладки, что происходит с моим сайтом?

Должен ли я добавлять заявления о дебюте/выходе/трассировке?

Если да, то какой и как я могу просмотреть их вывод? Могу ли я просмотреть их в Chrome -> Инструменты разработчика?

Например, прямо сейчас я могу зарегистрировать пользователя на своем сайте, чтобы я знал, что соединение с базой данных хорошее, но я не могу войти в систему зарегистрированного пользователя и хочу выяснить, почему.

Благодаря

+0

'Trace' и DebugView - ваши друзья, среди хорошей структуры ведения журнала. –

+0

Как/Где я могу просмотреть результаты этих действий на веб-сайте? –

+0

Имеет ли смысл отлаживать или проходить через код живого сайта? –

ответ

1

Вы можете добавить след и журналы отладки в вашем приложении. Для удобства, вы можете использовать рамки протоколирования как http://nlog-project.org/ https://serilog.net/

+0

Где я просматриваю журналы трассировки и отладки на веб-сайте? –

+1

Вы можете настроить n-log и serilog для записи журналов. см. https: // github.com/nlog/NLog/Wiki/Database-target https://github.com/serilog/serilog/wiki/Provided-Sinks –

1

Вы действительно можете написать свой собственный механизм протоколирования, в котором вы можете создать класс журнала и некоторые функции в нем, например,

public class Log 
    { 

     internal static bool RecordLog(string strSource, string strMethodName, string strStatement)//additional params you think appropriate for your logs 
     { 


       List<string> lstInfo = new List<string>(); 

       string strProductName = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location.ToString()).ProductName.ToString(); 
       string strProductVersion = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location.ToString()).ProductVersion.ToString(); 

       try 
       { 
        strProductName = FileVersionInfo.GetVersionInfo(Assembly.GetCallingAssembly().Location.ToString()).ProductName.ToString(); 
        strProductVersion = FileVersionInfo.GetVersionInfo(Assembly.GetCallingAssembly().Location.ToString()).ProductVersion.ToString(); 
       } 
       catch 
       { 
       } 

       try 
       { 
        lstInfo.Add("** Date=" + DateTime.Now.ToString("d MMM yy, H:mm:ss") + ", " + strProductName + " v" + strProductVersion); 
        lstInfo.Add("Source=" + strSource + ", Server=" + strServerIP + ""); //add more info in list as per rquirement     

        bool flag = blnWriteLog("LogFilename", lstInfo); 
       } 
       catch (Exception objEx) 
       { 
       //exception handling 
       } 

      return true; 
     } 

     private static bool blnWriteLog(string strProductName, List<string> lstInfo) 
     { 
      string strPath = strGetLogFileName(strProductName); 
      using StreamReader write in the log file received 

      return true; 
     } 

     private static string strGetLogFileName(string strFilePrefix) 
     { 
      //logic to check your file name, if it exists return name else create one 

      return strFile; 

     } 
    } 

, а затем вы можете использовать то же самое из файла

Log.RecordLog()// Values as per your code and requirement 

Примечания: Выше просто предложили способ сделать это, может быть много других и эффективными способами также

1

Вы можете использовать встроенную функцию Microsoft Intellitrace для выполнения кода из сгенерированных журналов intellitrace. В этой ссылке https://msdn.microsoft.com/en-us/library/dn449058.aspx даны инструкции о том, как добиться следующего:

«Если вы используете агент мониторинга Microsoft для управления IntelliTrace, вы также должны настроить настроить мониторинг производительности приложений на вашем веб-сервере. Это записывает диагностические события в то время как ваше приложение работает и сохраняет события файл журнала IntelliTrace. Затем вы можете посмотреть события в Visual Studio Enterprise (но не Professional или Community), перейдите к коду, где произошло событие, посмотрите на зарегистрированные значения в этот момент времени и переместите вперед или назад через код, который был запущен. После того, как вы найдете и исправьте проблему , повторите цикл создавать, выпускать и контролировать ваш выпуск , чтобы вы могли решать будущие потенциальные проблемы раньше и быстрее ».