IIS 6.0 и ASP.NET - не удалось записать в выходной файл... Неверное имя каталога

Я использую IIS 6.0 в Windows 2003 и начал получать эту ошибку:

Compiler Error Message: CS0016: Could not write to output file 'c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\7382c13f\ea9b3ff7\App_global.asax.zodyof_q.dll' -- 'The directory name is invalid. '

Я проверил все разрешения, и все так, как и должно быть - плюс, в сообщении об ошибке не упоминаются разрешения. Я уже пробовал следующее:

  • Следуя инструкциям из этой [устаревшей] статьи базы знаний: http://support.microsoft.com/kb/825791/en-us
  • Восстановление установки.NET Framework v3.5, затем перезагрузка
  • Удаление содержимого c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root, затем работает iisreset
  • Сброс разрешений на c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root, затем работает iisreset
  • Сброс разрешений на c:\WINDOWS\TEMP, затем работает iisreset,

Какие-либо предложения?


Другие заметки / ответы:

  • Служба индексирования отключена.

10 ответов

Решение

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

http://www.red-gate.com/supportcenter/Content.aspx?p=ANTS%20Profiler&c=knowledgebase\ ANTS_Profiler \ KB200903000362.htm

  1. Создать временную папку в %SystemRoot%, а затем назовите его Temp,
  2. Предоставьте полные разрешения для папки Temp учетной записи пользователя aspnet в.NET Framework 1.0 или учетной записи пользователя NETWORK SERVICE в.NET Framework 1.1.
  3. Щелкните правой кнопкой мыши Мой компьютер и выберите Свойства.
  4. На вкладке "Дополнительно" щелкните "Переменные среды".
  5. Выберите переменную TEMP в разделе Системные переменные и нажмите кнопку "Изменить".
  6. Тип %SystemRoot%\TEMP в поле Значение переменной, а затем нажмите кнопку ОК.
  7. Повторите шаги 5 и 6 для редактирования переменной TMP. Нажмите ОК два раза.
  8. Нажмите Пуск, а затем нажмите Выполнить.

Чтобы сбросить службы IIS, введите в командной строке iisreset.

Каждому человеку, у которого все еще есть проблема! Шахта решается с помощью следующих http://support.microsoft.com/kb/825791

Используйте SysInternals FileMon (или ProcMon, если хотите), чтобы увидеть реальный файл, о котором он грызет. Вы можете ограничить его только мониторингом IIS, если у вас занят сервер, хотя я бы начал со всех процессов и просто захватил пару секунд вывода.

Перед запуском убедитесь, что IIS был сброшен с помощью iisreset / restart, чтобы ошибка не кэшировалась ранее.

Райан

У меня была та же ошибка при запуске IIS 7.0 / Vista Ultimate / .NET 2.0 Web App. Я попытался установить разрешения "Полный доступ" для временной папки для пользователя NETWORK SERVICE (щелкните правой кнопкой мыши папку c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727, Свойства, вкладка Безопасность) и отключение антивируса и UAC, но это не помогло.

Но это сработало как волшебство: откройте IIS Manager -> выберите "Просмотр пулов приложений" в правом меню -> выберите "Advanced Settings" -> укажите свое имя пользователя (и пароль) в свойстве "Identity" -> перезапустите IIS

Если это не работает, проверьте дополнительно, что вы являетесь владельцем c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727 папка (щелчок правой кнопкой мыши, Свойства, вкладка Безопасность, Дополнительно, вкладка Владелец)

Хорошо, когда вы восстановили установку, вы имеете в виду ASPNET_REGIIS -u / ASPNET_REGIIS -i? это бы исправило права доступа к диску.

Это может быть твой virusscanner; исключите ваши временные папки.net / inetpub, если это возможно, и если это безопасно.

Я получил ту же ошибку. Антивирусное / защитное программное обеспечение (McAffee Viruscan Enterprise) не позволяло инструменту Visual Studio csc.exe динамически компилировать код и создавать dll модели данных сущностей в папке каталога, над которой находится в папке каталога Windows. В McAffee есть раздел под названием "Защита доступа", в котором есть правило "Максимальная защита", запрещающее создание исполняемых файлов в папке каталога Windows. Просто временно отключите правило или защиту доступа для успешной компиляции сайта.

Вот и окончательное решение:)


  1. Сначала предоставьте все права доступа учетной записи ASPNET, учетной записи NETWORK SERVICE к папке "Временные файлы ASP.NET" в зависимости от используемой платформы.
    как C:\windows\microsoft.net\framework\v2.xxx\ASP.NET Временные файлы.

  2. Проверьте временную папку, настроенную для вашего компьютера, в переменных окружения для TEMP и TEMP. Для этой папки также дайте все права доступа к учетной записи ASPNET, NETWORK SERVICE accout. Сброс IIS Должно работать нормально.

Из windows server 2003 x64, IIS6, net 4.0, asp приложение мне было выдано с ошибкой:

Сообщение об ошибке компилятора: CS0016: Не удалось записать в выходной файл 'c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\ Временные файлы ASP.NET \root\7382c13f\ea9b3ff7\App_global.asax.zodyof_q.dll' - "Имя каталога неверно. '

Это было решено, когда я создал DIR

d: \ Temp

Не знаю, почему D:\temp был важен, но я обновлю этот ответ с указанием причины, как только узнаю.

Разрешения на DIR были:

админ полный

создатель владелец особенный

система заполнена

пользователи читают и выполняют / перечисляют / читают

Специальное разрешение пользователя IIS не определено.

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

Нужно попробовать отключить Windows Indexing Service для папки временных файлов asp.net

Другие вопросы по тегам