我正计划编写一个应用程序,将多个 PDF 作为附件发送到用户的电子邮件中。
我应该使用内存(MemoryStream)还是有一个可以使用的临时目录?哪个更可取?谢谢!
顺便说一句,我正在使用 C# ASP.NET
我正计划编写一个应用程序,将多个 PDF 作为附件发送到用户的电子邮件中。
我应该使用内存(MemoryStream)还是有一个可以使用的临时目录?哪个更可取?谢谢!
顺便说一句,我正在使用 C# ASP.NET
我会选择文件系统存储,因为内存是一种更稀缺的资源。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 个实例。如果它跟不上,通过配置文件启动第二个(即不重新部署)。这还具有为您的解决方案提供更多聚合带宽的额外好处。
如果流量不是很重,你可以启动一个单独的线程(或进程)来做同样的事情。
拍