StreamWriter добавляет дополнительный \ r в конце строки

Я создал класс с обязанностью генерировать текстовый файл, где каждая строка представляет информацию об объекте класса «MyDataClass». Ниже приведено упрощение моего кода:

public class Generator
{
    private readonly Stream _stream;
    private readonly StreamWriter _streamWriter;
    private readonly List<MyDataClass> _items;

    public Generator(Stream stream)
    {
        _stream = stream;
        _streamWriter = new StreamWriter(_stream, Encoding.GetEncoding("ISO-8859-1"));
    }

    public void Generate()
    {
        foreach (var item in _items)
        {
            var line = AnotherClass.GetLineFrom(item);

            _streamWriter.WriteLine(line);
        }

        _streamWriter.Flush();
        _stream.Position = 0;
    }
}

И я называю этот класс так:

using (var file = new FileStream("name", FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
    new Generator(file).Generate();
}

Когда я запускаю приложение в Visual Studio (я тестирую с помощью run (Ctrl + F5), debug (F5), в режиме отладки и выпуска), все идет по плану. Но я публикую приложение на сервере IIS, и теперь класс StreamWriter помещает дополнительный символ \ r перед концом строки.

Проверьте шестнадцатеричное чтение обоих сгенерированных файлов:

Запуск в Visual Studio:http://www.jonataspiazzi.xpg.com.br/hex_vs.bmp

Запуск в IIS:http://www.jonataspiazzi.xpg.com.br/hex_iis.bmp

Некоторые вещи, которые я уже проверил:

Написатьline переменная (вvar line = AnotherClass.GetLineFrom(item);) в журнале, чтобы увидеть, не исключен ли лишний '\ r' классомAnotherClass.

Ничего не привело, последний символ вline обычный символ, как и ожидалось (в примере выше - пробел).

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

Я попробовал это:

var ms = new MemoryStream();
var sw = new StreamWriter(ms, Encoding.GetEncoding("ISO-8859-1"));

sw.WriteLine("Test");
sw.WriteLine("Of");
sw.WriteLine("Lines");

sw.Flush();
ms.Position = 0;

В этом случае код хорошо работает как для Visual Studio, так и для IIS.

Я нахожусь в этом в течение 3 дней, я уже пробую все, что может думать мой мозг. У кого-нибудь была подсказка, что я могу попробовать?

ОБНОВИТЬ

Страннее! Я пытаюсь заменить линию_streamWriter.WriteLine(line); с:

_streamWriter.Write(linhaTexto + Environment.NewLine);

И еще хуже

_streamWriter.Write(linhaTexto + "\r\n");

Оба продолжают генерировать дополнительные\r персонаж.

Я пытаюсь заменить на это:

_streamWriter.Write(linhaTexto + "#\r\n#");

И получить:

http://www.jonataspiazzi.xpg.com.br/hex_sharp.bmp

Ответы на вопрос(1)

Ваш ответ на вопрос