Windows Azure Exception: «Доступ к пути XYZ.exe запрещен». - PullRequest
2 голосов
/ 27 сентября 2011

Я использую локальное хранилище в Windows Azure для хранения временных файлов.Там я вызываю файл .exe для преобразования нескольких других файлов в одну и ту же папку локального хранилища.Проблема в том, что я всегда получаю исключение «Доступ к пути XYZ.exe запрещен».

Я должен упомянуть следующее: - Я использую рабочую роль - установите в файле определения службы

и попытался добавить разрешение к папке, к которой я обращаюсь:

    public static void AddPermission(string absoluteFolderPath)
    {
        DirectoryInfo myDirectoryInfo = new DirectoryInfo(absoluteFolderPath);

        DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl();
        myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(
        "NETWORK SERVICE",
        FileSystemRights.FullControl,
        AccessControlType.Allow));
        myDirectoryInfo.SetAccessControl(myDirectorySecurity);
    }

ОБНОВЛЕНИЕ: Я пытался с этим кодом сейчас:

     public static void FixPermissions()
    {
        var tempDirectory = RoleEnvironment.GetLocalResource("localStorage").RootPath;
        Helper.addPermission(tempDirectory);

        var dir = new DirectoryInfo(tempDirectory);
        foreach (var d in dir.GetDirectories())
            Helper.addPermission(d.FullName);
    }

    private  static void addPermission(string path)
    {
        FileSystemAccessRule everyoneFileSystemAccessRule = new FileSystemAccessRule("Everyone", 
                                                                                     FileSystemRights.FullControl,
                                                                                     InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
                                                                                     PropagationFlags.None, AccessControlType.Allow);
        DirectoryInfo directoryInfo = new DirectoryInfo(path);
        DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
        directorySecurity.AddAccessRule(everyoneFileSystemAccessRule);
        directoryInfo.SetAccessControl(directorySecurity);
    }

Я получаюдействительно странное поведение страницы.Я все еще получаю ошибки, но иногда некоторые файлы преобразуются в файл ffmpeg.exe.

Может ли кто-нибудь помочь мне здесь ??

Большое спасибо.

РЕШЕНИЕ:

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

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

1 Ответ

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

По умолчанию ваша рабочая роль, скорее всего, не будет работать с достаточными правами, чтобы разрешить изменения в списках управления доступом в папках Azure.

Существует два возможных варианта:

<WebRole name="WebApplication2">
  <Runtime executionContext="elevated" />
  <Sites>

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

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