When you read a stream to the end, specifically with StreamReader‘s ReadToEnd method, you have to Seek it back to the beginning. This can be done like so:
StreamReader sr = new StreamReader(stream);
sr.ReadToEnd();
stream.Seek(0, SeekOrigin.Begin); //StreamReader doesn't have the Seek method, stream does.
sr.ReadToEnd(); // This now works