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

Я использую 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 ]

4 голосов
/ 13 мая 2009

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

http://www.red -gate.com / SupportCenter / Content.aspx? Р = МУРАВЬЕВ% 20Profiler & с = * База знаний 1007 * \ ANTS_Profiler \ KB200903000362.htm

3 голосов
/ 30 ноября 2011
  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. Нажмите OK два раза.
  8. Нажмите Пуск, а затем нажмите Выполнить.

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

2 голосов
/ 07 апреля 2011

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

2 голосов
/ 10 октября 2009

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

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

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

2 голосов
/ 27 апреля 2009

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

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

Ryan

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

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

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

0 голосов
/ 18 августа 2015

В 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 были:

Администратор полный

Владелец Создателя Special

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

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

Не определено разрешение для конкретного пользователя IIS.

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

0 голосов
/ 12 августа 2010

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


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

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

0 голосов
/ 06 июня 2009

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

0 голосов
/ 27 апреля 2009

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

...