Wozu dient der Ordner "Temporäre ASP.NET-Dateien"?

157

Ich habe diesen Ordner in entdeckt C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Filesund habe ein paar Fragen.

  • Wofür verwendet ASP.NET diesen Ordner und welche Art von Dateien werden hier gespeichert?
  • Wie wird eine Datei hier gespeichert und wann wird sie aktualisiert?
  • Benötigt der Ordner irgendeine Art von Wartung?
Alex Angas
quelle
9
Falls jemand nach diesem Verzeichnis sucht, scheint es verschoben worden zu sein C:\Users\[Username]\AppData\Local\Temp\Temporary ASP.NET Files.
Peter

Antworten:

174

Dies sind sogenannte Schattenkopieordner.

Einfach ausgedrückt ... und ich meine es wirklich so:

Wenn ASP.NET Ihre App zum ersten Mal ausführt, kopiert es alle im Ordner / bin gefundenen Assemblys, kopiert alle Quellcodedateien (z. B. im Ordner App_Code) und analysiert Ihre aspx- und ascx-Dateien in c # -Quelldateien. ASP.NET erstellt / kompiliert dann den gesamten Code in eine ausführbare Anwendung.

Ein Vorteil davon ist, dass verhindert wird, dass die # der .NET Assembly-DLL (im Ordner / bin) vom ASP.NET-Worker-Prozess gesperrt wird und daher nicht aktualisiert werden kann.

ASP.NET sucht nach Dateiänderungen auf Ihrer Website und beginnt bei Bedarf den gesamten Vorgang von vorne.

Theoretisch sollte der Ordner nicht gewartet werden müssen, aber von Zeit zu Zeit und nur sehr selten müssen Sie möglicherweise Inhalte löschen. Trotzdem arbeite ich für ein Hosting-Unternehmen, wir betreiben bis zu 1200 Websites pro gemeinsam genutztem Server und ich musste diesen Ordner seit Jahren auf keinem der rund 250 Computer mehr berühren.

Dies wird im MSDN-Artikel Grundlegendes zur dynamischen ASP.NET-Kompilierung beschrieben

Kev
quelle
Hallo Kev, ich habe eine COM-DLL, die in diesen Ordner kopiert wird. Die DLL benötigt einige Konfigurationsdateien in ihrem aktuellen Ordner, um ausgeführt zu werden. Wie kann ich sicherstellen, dass sie auch in diesen Ordner kopiert werden?
Rakesh
2
@robot - Sie haben die Antwort wahrscheinlich bereits gefunden, aber für zukünftige Leser können Sie den "ursprünglichen" Speicherort der DLL mithilfe von Reflection ermitteln und dann auf diese Weise auf die Konfigurationsdateien zugreifen. Siehe stackoverflow.com/a/837501/211627
JDB erinnert sich noch an Monica
2
Dieser Ordner scheint sich aufgrund der kontinuierlichen Integration für mich zu füllen. Jedes Mal, wenn die Site bereitgestellt wird (mehrmals täglich), wird eine neue Kopie im Ordner erstellt - bisher 29 GB.
Andy Joiner
3
Als Website-Hosting-Service berühren Sie diesen Ordner vielleicht nie, aber für Entwickler ist dies bei weitem das größte Problem, mit dem wir uns befassen müssen. Ich habe viele ganze Tage damit verbracht, zu versuchen, triviale Probleme zu lösen, aber die Kombination von IIS-Schatten Projekte im Kopier- und Visual Studio-Website-Stil sind ein Albtraum, mit dem ich arbeiten muss, und ich muss den Inhalt dieses Ordners mehrmals täglich löschen.
Bikeman868
8

Die CLR verwendet es, wenn es zur Laufzeit kompiliert wird. Hier ist ein Link zu MSDN , der weiter erläutert wird.

cgreeno
quelle
4

Hier setzt asp.net dynamisch kompilierte Assemblys.

StingyJack
quelle