StreamWriter agrega un \ r adicional al final de la línea

Creé una clase con la responsabilidad de generar un archivo de texto donde cada línea representa la información de un objeto de la clase 'MyDataClass'. A continuación se muestra una simplificación de mi código:

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;
    }
}

Y llamo a esta clase así:

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

Cuando ejecuto la aplicación en Visual Studio (pruebo con ejecutar (Ctrl + F5), depurar (F5), con modo de depuración y liberación) todo va de acuerdo con el plan. Pero publico la aplicación en un servidor IIS y ahora la clase StreamWriter pone un \ r adicional antes del final de la línea.

Echa un vistazo a la lectura hexadecimal de ambos archivos generados:

Ejecutando en Visual Studio:http://www.jonataspiazzi.xpg.com.br/hex_vs.bmp

Ejecutando en IIS:http://www.jonataspiazzi.xpg.com.br/hex_iis.bmp

Algunas cosas que ya revisé:

Escribe elline variable (envar line = AnotherClass.GetLineFrom(item);) en un registro para ver si la clase no incluye un '\ r' adicionalAnotherClass.

No resultó en nada, el último personaje enline es un carácter normal como se esperaba (en el ejemplo anterior es un espacio).

Escriba otro código para ver si el problema es general para todas las instancias de IIS StreamWriter.

Intenté esto:

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;

En este caso, el código funciona bien tanto para Visual Studio como para IIS.

Estoy en esto durante 3 días, ya intento todo lo que mi cerebro puede pensar. ¿Alguien tiene alguna pista de lo que puedo probar?

ACTUALIZAR

¡Ponte más raro! Trato de reemplazar la linea_streamWriter.WriteLine(line); con:

_streamWriter.Write(linhaTexto + Environment.NewLine);

Y aún peor:

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

Ambos siguen generando el extra\r personaje.

Intento reemplazar con esto:

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

Y obten:

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

Respuestas a la pregunta(4)

Su respuesta a la pregunta