我有一个从数据库(SQL2008)流式传输图像的站点,我认为这是导致我的服务器上 CPU 使用率非常高的站点。CPU 使用率至少为 60-90%。
我正在使用 MVC3,下面是我的控制器中将图像发送到视图的代码:
[OutputCache(Duration = 86400, VaryByParam = "GUID")]
public FileStreamResult GetFile(string guid)
{
Guid id = new Guid(guid);
Thumbnail thumbnail = thumbService.GetThumbnailByGUID(id);
Stream stream = new MemoryStream(thumbnail.FileContent.ToArray());
var fsr = new FileStreamResult(stream, "image");
return fsr;
}
风景:
<div style="background:url('@url');background-repeat:no-repeat;background-position:50% top;background-color:#fff;" class="photoThumb">
上面的@url 是 /GetFile/guid
谁能告诉我我做错了什么?
谢谢
答案和另一个问题的更新:
下面答案中的 [OutputCache(Duration = 86400, VaryByParam = "GUID")] 有效,并提高了网站的性能。CPU 使用率现在已下降到 8-60%,但我还想确保所有东西都已处理完毕,所以我想知道 FileStreamResult 是为我做这件事还是应该手动做?