Почему я получаю исключение UnauthorizedAccessException при попытке записи файла в LocalStorage в Azure - PullRequest
0 голосов
/ 04 апреля 2011

Я создал локальное хранилище в моей веб-роли под названием «MyTestCache», как и в моем Файл ServiceDefinition.csdef. Но когда я вызываю метод System.IO.File.WriteAllBytes, я получаю исключение UnauthorizedAccess. Кто-нибудь знает, что будет причиной этого? Я не получаю это при создании каталога в коде ниже, только при записи. Я использую SDK 1.3.

 private void SaveFileToLocalStorage(byte[] remoteFile, string filePath)
    {
        try
        {
            LocalResource myIO = RoleEnvironment.GetLocalResource("MyTestCache");

            // Creates directory if it doesn't exist (ie the first time)
            if (!Directory.Exists(myIO.RootPath + "/thumbnails"))
            {
                Directory.CreateDirectory(myIO.RootPath + "/thumbnails");
            }

            string PathToFile = Path.Combine(myIO.RootPath + "/thumbnails", filePath);
            var path = filePath.Split(Char.Parse("/"));

            // Creates the directory for the content item (GUID)            
            if (!Directory.Exists(Path.Combine(myIO.RootPath + "/thumbnails", path[0])))
            {
                Directory.CreateDirectory(Path.Combine(myIO.RootPath + "/thumbnails", path[0]));
            }

            // Writes the file to local storage.
            File.WriteAllBytes(PathToFile, remoteFile);
        }
        catch (Exception ex)
        {
            // do some exception handling
            return;
        }

    }

1 Ответ

2 голосов
/ 04 апреля 2011

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

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