"Ошибка: cs0016 не смог записать в выходной файл... доступ запрещен"
Как я могу исправить следующую ошибку?
ошибка: cs0016 не смог записать в выходной файл... c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Временные файлы ASP.NET\sitename\6c57f9d2\bb09b49d\App_global.asax.5odzsyz5.dll ' доступ запрещен
Ответы
Ответ 1
Я некоторое время боролся с этой проблемой.
Нашли некоторые решения в Интернете, которые включали настройку разрешений в каталоге "Временные файлы ASP.NET" в сообщении об ошибке. Но даже открыть его для "Все" не получилось.
Затем, в конце концов, следующие шаги исправили его:
- Перейдите в IIS AppPool для этого сайта.
- Щелкните правой кнопкой мыши пул приложений и перейдите в раздел "Дополнительные параметры"
- Измените идентификатор с "ApplicationPoolIdentity" на "NetworkService"
Также могут быть некоторые другие необходимые шаги, которые я выполнял при устранении неполадок, но это ключевой шаг. По какой-то причине идентификатор пула приложений (например, IIS_APPPOOL\SiteName) не предоставляется, когда "Все" есть. Я уверен, что кто-то еще может пролить свет на то, почему это так... Надеюсь, это поможет другим решить эту неприятную проблему.
Ответ 2
Потратив часы на эту проблему, я оказался ниже, это решение, которое работало для меня в Windows 7 с IIS 7.5:
Идентификатор пула приложений, связанный с сайтом, не был членом группы IIS_IUSRS. Чтобы добавить идентификатор пула приложений в группу, я использовал следующие шаги:
- В меню "Пуск" выберите "Выполнить"... введите lusrmgr.msc и нажмите "ОК" .
- Выберите группы.
- Дважды щелкните группу IIS_IUSRS.
- Нажмите кнопку "Добавить".
- Нажмите кнопку "Locations...".
- Выберите имя своего компьютера (оно должно быть в верхней части списка) и нажмите "ОК" .
- В текстовом поле ниже "Введите имена объектов для выбора" введите:
iis apppool\< идентификатор пула приложений > например iis apppool\dev
- Нажмите кнопку "Проверить имена". Если появляется диалоговое окно "Имя не найден", убедитесь, что идентификатор пула приложений совпадает с идентификатором пула приложений, связанным с сайтом. Если диалоговое окно не появилось, нажмите "ОК" .
Повторите шаги с 7 по 8 для каждого идентификатора пула приложений, который вы хотите добавить.
Нажмите "ОК" .
Теперь идентификатор пула приложений является членом группы IIS_IUSRS, которая уже должна иметь доступ к папке Temporary ASP.NET Files. В конце концов, я все еще получал ошибку, и я обнаружил (благодаря монитору процесса), потому что идентификатор пула приложений не мог записываться в каталог временных файлов Windows. Чтобы решить эту проблему, я добавил группу IIS_IUSRS в каталог temp Windows с разрешениями на чтение/запись.
- В меню "Пуск" выберите "Выполнить"... введите% windir% и нажмите "ОК" .
- Щелкните правой кнопкой мыши каталог Temp и выберите "Свойства".
- Перейдите на вкладку "Безопасность".
- Нажмите кнопку "Изменить...".
- Нажмите кнопку "Добавить".
- Нажмите кнопку "Locations...".
- Выберите имя своего компьютера (оно должно быть в верхней части списка) и нажмите "ОК" .
- В текстовом поле ниже "Введите имена объектов для выбора" введите: iis_iusrs
- Нажмите кнопку "Проверить имена". Если появится диалоговое окно "Имя не найден", проверьте наличие опечаток. Если диалоговое окно не появилось, нажмите "ОК" .
- Выберите добавленную группу IIS_IUSRS и в поле Разрешения для всех ниже:
Разрешить чтение и разрешение записи
- Нажмите "ОК" . Появится диалоговое окно с сообщением, что "вы собираетесь изменить
разрешений в системных папках, что может привести к неожиданным проблемам доступа
и снизить уровень безопасности. Вы хотите продолжить? "
- Нажмите "Да"
- Нажмите "ОК"
Ответ 3
Я исправил эту проблему, установив полный контроль над "NETWORK SERVICE" на системную температуру:
C:\Windows\Temp
Сообщение об ошибке, сообщаемое веб-сервером, немного вводит в заблуждение.
Надеюсь, это поможет.
Ответ 4
У меня была та же проблема.
Нашел простой способ решения: установите "Загрузить профиль пользователя" в true в дополнительных настройках пула приложений.
Ответ 5
Я нашел, что принятый ответ на этом посту был правильным в процессе. Я попробовал "NetworkService", и это не сработало. Однако "LocalSystem" сделал!
Ответ 6
Для Windows 7 Установите Full Control
Разрешения в папке C:\Windows\Temp
для пользователя IIS_IUSRS
Network Service
Пользователь обычно применяется только на серверах
Ответ 7
У меня есть все права на запись и чтение, но я начинаю получать эту ошибку.
Я могу предложить "перезапустить машину"
По крайней мере, это работает для меня
Ответ 8
Перейдите C:\Windows\Temp. Щелкните правой кнопкой мыши на папке Temp> перейдите в Security. Нажмите Edit, добавьте нового пользователя [IIS_IUSRS] И ДАЙТЕ ЕГО ПОЛНОЕ РАЗРЕШЕНИЕ. Затем нажмите Ok,