Проблема с разрешениями IIS с Enable32BitAppOnWin64 - PullRequest
2 голосов
/ 26 апреля 2011

Я использую 64-битный компьютер. Мой пул приложений настроен на использование NETWORK SERVICE. Мое приложение работает нормально, когда оно работает в 64-битном режиме.

При работе в 32-битном режиме (установите флажок Enable32BitAppOnWin64 в пуле приложений), я часто получаю ошибки разрешения, когда IIS не может получить доступ к своей временной папке. Если я изменю tempDirectory в web.config, проблема будет решена временно. Это часто возвращается позже, после того, как я внес еще одно изменение в свое приложение.

Пример, когда tempDirectory = "c: \ temp \ iistemp4" Доступ к пути 'c: \ temp \ iistemp4 \ tbmpos \ a93ceaf9 \ c953db72 \ ResX \ header.ascx.resources' запрещен. ---> System.UnauthorizedAccessException: доступ к пути 'c: \ temp \ iistemp4 \ tbmpos \ a93ceaf9 \ c953db72 \ ResX \ header.ascx.resources' запрещен.

Очевидно, что NETWORK SERVICE имеет доступ к папке, поскольку она фактически создала ее. Возврат в 64-битный режим решает проблему.

Process Monitor показывает: 12: 40: 47.7314293 PM w3wp.exe 6184 CreateFile c: \ temp \ iistemp4 \ tbmpos \ a93ceaf9 \ c953db72 \ ResX \ header.ascx.resources ACCESS DENIED Требуемый доступ: универсальная запись, чтение атрибутов, расположение: OpenIf, параметры: синхронный I Non-Alert, файл без каталога, открытый без повторного вызова, атрибуты: н / д, ShareMode: нет, AllocationSize: 0

Это единственный доступ к нему, который я вижу в Process Monitor.

Однако, если я открою папку с помощью проводника Windows, я получу несколько «ПЕРЕКЛЮЧЕНИЕ БУФЕРА» в разделе «Информация о владельце, DACL и о владельце, группе, DACL». IIS создал файл с неправильными разрешениями?

Есть идеи?

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

Благодаря монитору процессов я понял, что что-то установило странные разрешения в моем c: \ temp \ и принудительное распространение для всех детей. Это вызвало странности в странных контекстах, таких как этот.

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

0 голосов
/ 26 апреля 2011

Не произошел ли сбой из-за совместного использования ресурсов? Попробуйте посмотреть с помощью такого инструмента, как filemon.

...