Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 为什么StreamReader.ReadLine抛出OfMemoryException?_.net_Out Of Memory - Fatal编程技术网

.net 为什么StreamReader.ReadLine抛出OfMemoryException?

.net 为什么StreamReader.ReadLine抛出OfMemoryException?,.net,out-of-memory,.net,Out Of Memory,有人能告诉我为什么这里的最后一行抛出异常吗 byte[] buffer = new byte[1]; buffer[0] = 239; MemoryStream ms = new MemoryStream(buffer); StreamReader sr = new StreamReader(ms); string l1 = sr.ReadLine(); string l2 = sr.ReadLine

有人能告诉我为什么这里的最后一行抛出异常吗

        byte[] buffer = new byte[1];
        buffer[0] = 239;
        MemoryStream ms = new MemoryStream(buffer);
        StreamReader sr = new StreamReader(ms);
        string l1 = sr.ReadLine();
        string l2 = sr.ReadLine();

恭喜,您在.NET framework中发现了一个bug。它由十六进制中的字节值0xef产生。这是数据的第一个字节。当然,它不是一个完整的BOM表,接下来的两个字节丢失了。然而,这足以致命地混淆StreamReader,它一直试图从流中读取数据,但从未到达任何地方,在尝试时消耗内存。最终,OOM是下一个

此错误也存在于.NET4.0中。错误的确切来源很难追踪,所涉及的代码不包括在参考源中。它可能被归类为关键攻击,因为它可用于DOS攻击。您可以在connect.microsoft.com上报告此错误。如果您不想,请告诉我,我会报告(MVP职责)。

投票结果。网址: