【发布时间】:2012-04-10 08:02:29
【问题描述】:
我正计划编写一个应用程序,将多个 PDF 作为附件发送到用户的电子邮件中。
我应该使用内存 (MemoryStream) 还是有一个可以使用的临时目录?哪个更可取?谢谢!
顺便说一句,我正在使用 C# ASP.NET
【问题讨论】:
标签: c# asp.net azure pdf-generation
我正计划编写一个应用程序,将多个 PDF 作为附件发送到用户的电子邮件中。
我应该使用内存 (MemoryStream) 还是有一个可以使用的临时目录?哪个更可取?谢谢!
顺便说一句,我正在使用 C# ASP.NET
【问题讨论】:
标签: c# asp.net azure pdf-generation
我会选择文件系统存储,因为内存是一种更稀缺的资源。为此,Windows Azure 提供了本地存储资源,这些资源是您在服务定义中配置的磁盘区域,然后在运行时通过 Azure SDK 进行访问。它们不是永久存储,并且会在角色回收时被清理,因此它们非常适合临时操作,例如您描述的操作。尽管您仍应在每次操作后尝试清理文件以确保不会填满空间。
关于本地存储资源的完整信息在这里:http://msdn.microsoft.com/en-us/library/windowsazure/ee758708.aspx
这里有一张表,详细说明了每个实例大小的本地存储资源可用的磁盘空间量:http://msdn.microsoft.com/en-us/library/windowsazure/ee814754.aspx
【讨论】:
您可以使用不同的模式。将 PDF 放入 blob 存储中,并放置一条包含电子邮件地址和要发送的 PDF 列表的队列消息。建立一个单独的工人角色并发送电子邮件。您可以使用 X-Small 或 Small。由于这也允许异步通信,因此您可以只使用 1 个实例。如果它跟不上,请通过配置文件启动第二个(即不重新部署)。这还具有为您的解决方案提供更多聚合带宽的额外好处。
如果流量不是很重,您可以启动一个单独的线程(或进程)来做同样的事情。
拍拍
【讨论】: