Do czego służy folder „Temporary ASP.NET Files”?

157

Odkryłem ten folder w programie C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Filesi mam kilka pytań.

  • Do czego ASP.NET używa tego folderu i jakiego rodzaju pliki są tutaj przechowywane?
  • W jaki sposób plik jest tutaj przechowywany i kiedy jest aktualizowany?
  • Czy folder wymaga jakiejkolwiek konserwacji?
Alex Angas
źródło
9
Jeśli ktoś szuka tego katalogu, wydaje się, że przeniósł się do C:\Users\[Username]\AppData\Local\Temp\Temporary ASP.NET Files.
Peter

Odpowiedzi:

174

Są to tak zwane foldery kopiowania w tle.

Upraszczając ... i naprawdę mam to na myśli:

Gdy ASP.NET uruchamia aplikację po raz pierwszy, kopiuje wszystkie zestawy znalezione w folderze / bin, kopiuje wszystkie pliki kodu źródłowego (znalezione na przykład w folderze App_Code) i analizuje pliki aspx, ascx do plików źródłowych C #. Następnie program ASP.NET buduje / kompiluje cały ten kod do postaci możliwej do uruchomienia aplikacji.

Jedną z zalet takiego rozwiązania jest to, że zapobiega możliwości zablokowania # biblioteki DLL zestawu .NET (w folderze / bin) przez proces roboczy ASP.NET, a tym samym niemożliwości jej aktualizacji.

ASP.NET obserwuje zmiany plików w Twojej witrynie i w razie potrzeby rozpocznie cały proces od nowa.

Teoretycznie folder nie powinien wymagać żadnej konserwacji, ale od czasu do czasu i bardzo rzadko może zajść potrzeba usunięcia zawartości. To powiedziawszy, pracuję dla firmy hostingowej, mamy do 1200 witryn na serwer współdzielony i od lat nie musiałem dotykać tego folderu na żadnym z 250 komputerów.

Jest to opisane w artykule MSDN Understanding ASP.NET Dynamic Compilation

Kev
źródło
Cześć Kev, mam plik dll com, który jest kopiowany do tego folderu, dll potrzebuje do wykonania niektórych plików konfiguracyjnych w swoim bieżącym folderze. jak mogę się upewnić, że są one również kopiowane do tego folderu?
Rakesh
2
@robot - Prawdopodobnie już znalazłeś odpowiedź, ale ze względu na przyszłych czytelników możesz znaleźć „oryginalną” lokalizację biblioteki DLL za pomocą narzędzia Reflection, a następnie uzyskać dostęp do plików konfiguracyjnych w ten sposób. Zobacz stackoverflow.com/a/837501/211627
JDB nadal pamięta Monikę
2
Wydaje mi się, że ten folder zapełnia się ze względu na ciągłą integrację - za każdym razem, gdy witryna jest wdrażana (kilka razy dziennie), w folderze jest tworzona nowa kopia - do tej pory 29 GB.
Andy Joiner
3
Jako usługa hostingu witryn internetowych może nigdy nie dotkniesz tego folderu, ale dla programistów jest to zdecydowanie największy ból głowy, z jakim mamy do czynienia. Spędziłem wiele dni próbując rozwiązać to, co powinno być trywialne, ale połączenie IIS shadow Kopiowanie i projekty w stylu witryny sieci Web Visual Studio są koszmarem do pracy i muszę codziennie czyścić zawartość tego folderu wiele razy.
bikeman868
8

Środowisko CLR używa go podczas kompilowania w czasie wykonywania. Oto łącze do MSDN, które wyjaśnia dalej.

cgreeno
źródło
4

W tym miejscu asp.net umieszcza dynamicznie kompilowane zestawy.

StingyJack
źródło