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
- Создать временную папку в
%SystemRoot%
, а затем назовите егоTemp
, - Предоставьте полные разрешения для папки Temp учетной записи пользователя aspnet в.NET Framework 1.0 или учетной записи пользователя NETWORK SERVICE в.NET Framework 1.1.
- Щелкните правой кнопкой мыши Мой компьютер и выберите Свойства.
- На вкладке "Дополнительно" щелкните "Переменные среды".
- Выберите переменную TEMP в разделе Системные переменные и нажмите кнопку "Изменить".
- Тип
%SystemRoot%\TEMP
в поле Значение переменной, а затем нажмите кнопку ОК. - Повторите шаги 5 и 6 для редактирования переменной TMP. Нажмите ОК два раза.
- Нажмите Пуск, а затем нажмите Выполнить.
Чтобы сбросить службы 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. Просто временно отключите правило или защиту доступа для успешной компиляции сайта.
Вот и окончательное решение:)
Сначала предоставьте все права доступа учетной записи ASPNET, учетной записи NETWORK SERVICE к папке "Временные файлы ASP.NET" в зависимости от используемой платформы.
как C:\windows\microsoft.net\framework\v2.xxx\ASP.NET Временные файлы.Проверьте временную папку, настроенную для вашего компьютера, в переменных окружения для 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