.Net Web资源中 stream 的释放问题

夏至如沫 发布于 2015/01/09 17:56
阅读 445
收藏 0

在Web输出时,可以直接向浏览器输出一个文件或者其他的任意内容,如果该内容是资源类型,比如L:文件、图像等。这些内容在向客户端输出后如何释放在服务端占用资源?

我使用的 Webservice

(WebServiceHost host = new WebServiceHost(typeof(Service), baseAddress))

这是一个请求非常频繁的文件,需要及时地释放资源

public Message GetPageFile(string FileName)
{
	FileInfo file = new System.IO.FileInfo(@"G:\Personal\Beauty\2000(3).jpg");
	using (FileStream fileStrem = file.Open(FileMode.Open))
	{
		byte[] bytesFile = new byte[fileStrem.Length];
		fileStrem.Read(bytesFile, 0, (int)fileStrem.Length);
		MemoryStream mstream = new MemoryStream(bytesFile);
		return WebOperationContext.Current.CreateStreamResponse(mstream, "File");
	}
}
客户端:
http://localhost:8000/GetPageFile?FileName=abc



现在问题是 如何及时地清理掉 MemoryStream 占用的资源,我已经尝试过不能直接像文件资源那样使用 Using 或者 finally 这样的方式直接释放,

客户端会找不到资源。请问应该如何处理?还是我想多了,可以直接忽视这些资源,让.Net 自己释放就行了?

加载中
0
夏至如沫
夏至如沫
周末下班了提问题会不会直接海掉了,自己先顶一下
0
月影南溪
月影南溪
你在Using结束之前就返回了,怎么可能会释放掉啊。可以把数据放到其他变量里,在用的地方再转换一下。
夏至如沫
夏至如沫
....我倒是想他没释放掉,我想问的是怎么不释放掉
返回顶部
顶部