Im trying to prompt a downloadable text file (.txt), but I get this error:
Cannot access a closed Stream.
I have looked at simular q
That is correct, when you wrap a stream in another stream, calling .Close()
or .Dispose()
on any of them will dispose the whole stream. In this case, wrapping the MemoryStream
in a StreamWriter
means that when the using
statement completes the StreamWriter
and MemoryStream
are both disposed.
My guess is since you are returning a FileStreamResult
the encapsulating File
will close the stream for you after the stream is no longer used. In this case, you do not want to use the using
statement and will want to leave the stream open when returning it.
UPDATE
Since a stream is forward access you'll need to see the stream back to the beginning to allow the data to be read back out.
stream.Seek(0, SeekOrigin.Begin);