如何处理“System.IO.IOException:磁盘空间不足”。在Windows Azure中
问题描述:
我在Windows Azure中遇到问题。我将临时文件存储在本地存储中。经过一段时间后,我得到一个System.IO.IOException:磁盘上没有足够的空间。如何处理“System.IO.IOException:磁盘空间不足”。在Windows Azure中
所以我已经阅读了一些关于它的文章和微软自己建议赶上错误并尝试清除文件。所以我现在的问题是如何完成这个最好的方法?
此刻,我会尝试,但我不知道这是不是最好的办法:
public static void ClearTempFolder(string localStorageName)
{
System.IO.DirectoryInfo downloadedMessageInfo = new DirectoryInfo(RoleEnvironment.GetLocalResource(localStorageName).RootPath);
foreach (FileInfo file in downloadedMessageInfo.GetFiles())
file.Delete();
foreach (DirectoryInfo dir in downloadedMessageInfo.GetDirectories())
dir.Delete(true);
}
感谢您的帮助。
答
如果你对所有文件都很满意 - 那么,是的,这应该可以正常工作。您可能想要捕获文件仍处于打开状态时将抛出的异常。
但是,检查代码以查看是否可以在完成后立即删除临时文件会更好。
答
退房http://msdn.microsoft.com/en-us/library/windowsazure/hh134851.aspx
默认TEMP/TMP目录限制为100MB ...!即使你有200GB +本地存储。
您的解决方案应该是双重的: 1)清理临时文件,当你与他们进行(如果你写一个文件到临时文件夹,删除它,当你完成它) 2)增加本地存储大小(如上所述),因此您可以在临时磁盘存储上存储大于100MB的文件
thx为您提供帮助! – MUG4N