Как обрабатывать «System.IO.IOException: на диске недостаточно места». в Windows Azure - PullRequest
1 голос
/ 27 сентября 2011

У меня проблема в Windows Azure.Я храню временные файлы в локальном хранилище.Через некоторое время я получаю исключение System.IO.IOException: на диске недостаточно места.

Поэтому я прочитал несколько статей об этом, и Microsoft сама рекомендует отловить ошибку и попытаться очистить файлы.,Итак, мой вопрос на данный момент: как лучше всего это сделать?

На данный момент я бы попробовал это, но я не знаю, является ли это лучшим подходом:

   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);
    }

Спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 27 сентября 2011

Если вы счастливы, что все файлы ушли - тогда, да, это должно работать нормально. Возможно, вы захотите перехватить исключения, которые будут выброшены, если файл все еще открыт.

Однако, может быть, лучше проверить ваш код, чтобы увидеть, можете ли вы удалить временный файл сразу же после его завершения.

0 голосов
/ 17 июля 2012

Выезд http://msdn.microsoft.com/en-us/library/windowsazure/hh134851.aspx

Предел каталога TEMP / TMP по умолчанию составляет ... 100 МБ! Даже если у вас 200 ГБ + локальное хранилище.

Ваше решение должно быть в два раза: 1) Очистите временные файлы, когда вы закончите с ними (если вы записываете файл во временную папку, удалите его, когда закончите с ним) 2) Увеличьте размер локального хранилища (как указано выше), чтобы вы могли хранить файлы размером более 100 МБ во временном дисковом хранилище

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...