Только один файл создан почему? - PullRequest
1 голос
/ 14 февраля 2012

Здесь я читаю данные из базы данных, зацикливаю результаты и передаю значение столбца, содержащее строку строки 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 ошибка сохраняется.

1 Ответ

3 голосов
/ 14 февраля 2012

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

DateTime.Now.ToString("ddMMyyyyhhmmss")

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...