"Ошибка: 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

enter image description here Перейдите C:\Windows\Temp. Щелкните правой кнопкой мыши на папке Temp> перейдите в Security. Нажмите Edit, добавьте нового пользователя [IIS_IUSRS] И ДАЙТЕ ЕГО ПОЛНОЕ РАЗРЕШЕНИЕ. Затем нажмите Ok,