Для чого потрібна папка "Тимчасові файли ASP.NET"?


157

Я відкрив цю папку C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Filesі маю кілька питань.

  • Для чого ASP.NET використовує цю папку та які файли зберігаються тут?
  • Як тут зберігається файл і коли він оновлюється?
  • Чи потрібна папка якесь технічне обслуговування?

9
Якщо хтось шукає цей каталог, він, схоже, перемістився C:\Users\[Username]\AppData\Local\Temp\Temporary ASP.NET Files.
Пітер

Відповіді:


174

Це те, що відомо як папки для копіювання тіней.

Спрощено .... і я справді маю на увазі це:

Коли ASP.NET запускає ваш додаток вперше, він копіює всі збори, знайдені в папці / bin, копіює будь-які файли вихідного коду (знайдені, наприклад, у папці App_Code) та аналізує ваші файли aspx, ascx до файлів c # вихідних файлів. Потім ASP.NET створює / збирає весь цей код у програму, яку можна запустити.

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

ASP.NET спостерігає за змінами файлів на вашому веб-сайті і, якщо необхідно, розпочне весь процес заново.

Теоретично папка не потребує обслуговування, але час від часу, і лише дуже рідко вам може знадобитися видалення вмісту. При цьому я працюю в хостинговій компанії, ми працюємо до 1200 сайтів на спільному сервері, і мені не довелося торкатися цієї папки ні на одній з 250 машин протягом багатьох років.

Це викладено у статті MSDN Розуміння динамічної компіляції ASP.NET


Привіт Кеве, у мене є dll com, який копіюється в цю папку, dll для виконання потрібні деякі конфігураційні файли в поточній папці. як я можу переконатися, що вони також скопійовані в цю папку?
Ракеш

2
@robot - Ви, мабуть, вже знайшли відповідь, але заради майбутніх читачів ви можете знайти "оригінальне" розташування DLL за допомогою Reflection і потім таким чином отримати доступ до файлів конфігурації. Дивіться stackoverflow.com/a/837501/211627
JDB все ще пам’ятає Моніку

2
Ця папка, здається, заповнює мене через постійну інтеграцію - кожен раз, коли сайт розгортається (кілька разів на день), в папці створюється нова копія - 29 Гб до цих пір.
Енді Столяр

3
Як сервіс хостингу веб-сайтів, можливо, ви ніколи не торкаєтесь цієї папки, але для розробників це, безумовно, найбільший головний біль, з яким ми маємо мати справу. Я витрачав багато цілих днів, намагаючись вирішити те, що має бути дрібницею, але поєднання тіні IIS Копіювання та проекти веб-сайтів Visual Studio - це кошмар, з яким потрібно працювати, і мені доводиться очищати вміст цієї папки кілька разів щодня.
bikeman868

8

CLR використовує його під час компіляції під час виконання. Ось посилання на MSDN, що пояснює далі.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.