Для чего нужна папка временных файлов ASP.NET?

Я обнаружил эту папку в C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files и у меня есть несколько вопросов.

  • Для чего ASP.NET использует эту папку и какие файлы здесь хранятся?
  • Как здесь сохраняется файл и когда он обновляется?
  • Папка нуждается в каком-либо обслуживании?

person Alex Angas    schedule 16.01.2009    source источник
comment
Если кто-то ищет этот каталог, похоже, он переместился в C:\Users\[Username]\AppData\Local\Temp\Temporary ASP.NET Files.   -  person Peter    schedule 26.04.2016


Ответы (3)


Это так называемые папки теневого копирования.

Упрощенно .... и я действительно серьезно:

Когда ASP.NET запускает ваше приложение в первый раз, он копирует все сборки, найденные в папке / bin, копирует любые файлы исходного кода (например, в папку App_Code) и анализирует ваши aspx, ascx файлы в исходные файлы C #. Затем ASP.NET собирает / компилирует весь этот код в работающее приложение.

Одно из преимуществ этого заключается в том, что это предотвращает возможность блокировки # библиотеки DLL сборки .NET (в папке / bin) рабочим процессом ASP.NET и, следовательно, невозможности обновления.

ASP.NET следит за изменениями файлов на вашем веб-сайте и при необходимости начнет весь процесс заново.

Теоретически папка не должна нуждаться в каком-либо обслуживании, но время от времени и очень редко вам может потребоваться удалить содержимое. Тем не менее, я работаю в хостинговой компании, мы запускаем до 1200 сайтов на общий сервер, и мне не приходилось трогать эту папку ни на одной из 250 или около того машин в течение многих лет.

Это описано в статье MSDN Общие сведения о динамической компиляции ASP.NET

person Kev    schedule 16.01.2009
comment
Привет, Кев, у меня есть com dll, которая копируется в эту папку, dll нужны некоторые файлы конфигурации в текущей папке для выполнения. как я могу убедиться, что они также скопированы в эту папку? - person Rakesh; 10.01.2014
comment
@robot - Вы, вероятно, уже нашли ответ, но для будущих читателей вы можете найти исходное расположение DLL с помощью Reflection, а затем таким образом получить доступ к файлам конфигурации. См. stackoverflow.com/a/837501/211627 - person JDB still remembers Monica; 19.04.2015
comment
Эта папка, кажется, заполняется для меня из-за непрерывной интеграции - каждый раз, когда сайт развертывается (несколько раз в день), в папке создается новая копия - на данный момент 29 ГБ. - person Andy Joiner; 15.05.2015
comment
Как служба хостинга веб-сайтов, возможно, вы никогда не прикасаетесь к этой папке, но для разработчиков это, безусловно, самая большая головная боль, с которой нам приходится иметь дело. Я потратил много дней, пытаясь решить тривиальные проблемы, но комбинация IIS shadow Копирование и проекты в стиле веб-сайта Visual Studio - это кошмар для работы, и мне приходится очищать содержимое этой папки несколько раз каждый день. - person bikeman868; 18.07.2016

CLR использует его при компиляции во время выполнения. Вот ссылка на MSDN, которая объясняет более подробно.

person cgreeno    schedule 16.01.2009

Именно туда asp.net помещает динамически скомпилированные сборки.

person StingyJack    schedule 16.01.2009