【发布时间】:2011-07-29 06:48:13
【问题描述】:
我正在开发一个标准的 ASP.NET MVC 3 Web 应用程序(托管在 IIS 7 上)。该网站允许用户上传照片等。
上传过程如下:
- 用户使用小部件(当前为 plupload)从他们的 PC 中选择文件。
- AJAX 调用发生在我的服务器上,图像在 HTTP POST (Request.Files) 中
- 服务器调整照片大小 N 次
- 每张调整大小的照片都会上传到 Amazon S3
目前,上述内容是通过使用 .NET 4.0 的 TPL 的“即发即弃”技术实现的。
我想让上述内容更加灵活和健壮。例如,如果图像处理失败(它正在使用 GDI,所以很可能),或者 S3 已关闭(发生这种情况),我或用户不会知道。
我正在考虑将 WCF 服务托管为 Windows 服务,它会轮询文件夹中的图像。
我的主网站只需将图像 FTP 到“观看”文件夹,然后该服务将负责图像处理和上传。
不需要“立即”通知用户照片已完成。换句话说,现在我们显示“您的图像正在处理中,很快就会可用”消息。
综上所述,服务需要:
- 调整图片大小
- 将图像上传到 S3
- 读/写数据库
- 能够“重试”失败的图像
有什么建议吗? FileSystemWatcher 是个不错的选择吗?
【问题讨论】:
标签: c# asp.net-mvc wcf architecture .net-4.0