ASP.NET(MVC)服务图像
我正在创建一个MVC 3应用程序(尽管适用于其他技术,例如ASP.NET Forms),并且只是想知道是否可行(性能明智)从代码提供图像而不是使用直接虚拟路径(如通常那样).
我的想法是,我改进了提供文件的常用方法: >应用安全检查 我知道怎么做,但我不知道我应该这样做. >什么是性能问题(如果有的话) 希望这一切都有意义! 谢谢, UPDATE 好的 – 让我们具体: 使用此类方法使用内存流为MVC 3中的所有图像提供服务会对性能产生什么影响?注意:图像URL将是GenericFetchImage / image1(为简单起见 – 我的所有图像都是jpegs). public FileStreamResult GenericFetchImage(string RouteValueRefToImage) { // Create a new memory stream object MemoryStream ms = new MemoryStream(); // Go get image from file location ms = GetImageAndPutIntoMemoryStream(RouteValueRefToImage); // return the output as a file return new FileStreamResult(ms,"image/jpeg"); } 我知道这种方法有效,因为我使用它来根据验证码图像的会话值动态生成图像.它非常整洁 – 但我想使用这种方法进行所有图像检索. 我想我在上面的例子中想知道这是否可行,或者是否需要更多的处理才能执行,如果是,那么多少?例如,如果访问者的数量乘以1000,那么服务器是否会在交付图像时处理负担. 谢谢! 解决方法
之前(
Can an ASP.Net MVC controller return an Image?)也提出了一个类似的问题,并且看起来直接用行动提供图像的性能影响非常小.正如所接受的答案所指出的那样,差异似乎是毫秒级(在该测试案例中,约为13%).您可以在本地重新运行测试,看看您的硬件有何不同.
关于你是否应该使用它的问题的最佳答案是从这个answer到(另一个)类似的问题(强调我的):
要解决您提供的具体问题: >
您可以使用IIS 7 integrated pipeline执行此操作.文档中的相关位:
>
如果我正确地阅读文档,您可以在管道中尽早插入模块以重新编写传入的URL以直接指向静态资源,并让IIS从那里处理请求. (为了完整起见,还有关于将法律路线映射到法师的相关问题:How do I route images using ASP.Net MVC routing?)
还有一些非常强大的URL rewrite features,它带有或多或少的开箱即用的IIS.
看起来0700已经可用于IIS了.不确定这是否会落在代码服务图像之下,但我猜它可能.
如果你正在执行业务逻辑来生成所述资源(如chart)或者你提到的验证码图像那么是的,你基本上别无选择,只能这样做. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp-classic – 在VBScript中检查NULL的错误
- asp.net-mvc – 具有MasterPage的视图上的多个AntiForgeryT
- 如何在ASP.NET Core MVC 1.0中创建和管理插件?
- asp.net-core – 使用新的signalR for DotNet核心从控制台A
- asp.net – 访问网站根目录时,FormsAuthentication重定向到
- asp.net – 这是什么错误?
- asp.net-mvc – 使用ASP.NET MVC 2上传文件的最佳方法是什么
- .net – 我应该使用ASP:Label标签吗?
- asp.net – web.config文件中的特殊字符
- asp.net核心 – aspnetcidev和aspnetvnext之间的区别?
- asp.net-mvc – 使用@ Html.Partial渲染usercont
- asp.net-mvc-routing – @ Url.Action获取?附加
- asp.net – Glimpse手动分析a MiniProfiler?
- asp.net-mvc – 错误System.Web.HttpCompileExce
- asp.net – 为什么在发布Web App时我的WebJob没有
- List<T>集合的Sort自定义排序用法简单解析
- 如何在我的域模型中实现ASP.NET成员资格提供程序
- asp.net-mvc – Validator.TryValidateObject不验
- asp.net-mvc – ViewModel中的MVC3 RouteUrl
- asp.net-mvc-3 – 将部分视图返回到同一视图