用于Image服务器的IHttpHandler或IHttpAsyncHandler

时间:2015-05-18 16:58:09

标签: c# asp.net-mvc image ihttphandler ihttpasynchandler

我的任务是开发一个图像服务器,它将:

  • 从磁盘加载图片
  • 根据HTTP参数
  • 调整大小
  • 将一个或多个水印应用于原始图像

问题是我应该使用什么技术,我将使用IHttpHandler来做,但我想知道在这种情况下使用IHttpAsyncHandler会更快吗?

我可以在IHttpHandler中异步处理图像吗?

也许我应该考虑一些高级框架,例如NancyFx或只是从控制器(MVC2)返回图像?

2 个答案:

答案 0 :(得分:0)

异步IO不会以任何方式使IO更快。它在IO运行时取消阻塞线程。正在执行的所有CPU工作都不会受到影响。

In some cases it is a good idea to use async IO to unblock threads, in others it is a waste of dev time with no benefit to customers whatsoever.您是否期望大量并发图像下载(例如100(同时!))?然后异步IO可能是有益的。

可能你不应该使用IHttpHandler来做任何事情。使用MVC。

答案 1 :(得分:-1)

我会考虑使用http://imageresizing.net - 重新开发这可能会使您或您的雇主多花费其许可费用。动态调整图像很难做到正确。根据您的需求描述,我相信许可证甚至是免费的。只有当您超出您的简单需求时,您才需要升级到付费许可证。

如果你决定尝试自己动手,我建议先阅读:http://www.nathanaeljones.com/blog/2009/20-image-resizing-pitfalls这将找出一些可以避免的陷阱。