2012-02-14 7 views
1

Здесь я читаю данные из базы данных, просматриваю результаты и передаю значение столбца, содержащее строку строки HTML, в функцию. Эта функция извлекает тег и содержимое <body> из ввода HTML.Только один файл создан почему?

Когда контрольная точка добавляется для отладки и я выполняю код, все работает правильно. Когда точка останова удаляется, создается только один файл, но исключений не генерируется. Код:

for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
    { 
     try 
     { 
      getBody(ds.Tables[0].Rows[i]["MailText"].ToString()); 
     } 
     catch(Exception exp) 
     { 
      Response.Write(exp.ToString()); 
     } 
    } 


public void getBody(string html) 
{ 
    try 
    { 
     HtmlDocument HD = new HtmlDocument(); 
     HD.LoadHtml(html); 
     string output = HD.DocumentNode.SelectSingleNode("//body") == null ? HD.DocumentNode.InnerHtml : HD.DocumentNode.SelectSingleNode("//body").InnerHtml; 
     using (StreamWriter sw = new StreamWriter(Server.MapPath("OnlyBody/") + DateTime.Now.ToString("ddMMyyyyhhmmss") + ".txt")) 
     { 
      sw.Flush(); 
      sw.Write(output); 
      if (sw != null) 
      { 
       sw.Close(); 
       sw.Dispose(); 
      } 
     } 

    } 
    catch (Exception exp) 
    { 
     throw exp; 
    } 
    finally 
    { 

    } 
} 

Сначала я думал, что проблема была с файловым потоком, но даже после утилизации StreamWriter ошибки сохраняется.

ответ

3

При отладке с точки останова, этот блок кода будет возвращать разные результаты:

DateTime.Now.ToString("ddMMyyyyhhmmss") 

Без контрольных точек, секунды (ss) не увеличивают, потому что код выполняется слишком быстро.