什么是“ 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
彼得

Answers:


174

这些就是所谓的卷影副本文件夹。

简单地说...。我的意思是:

当ASP.NET首次运行您的应用程序时,它将复制在/ bin文件夹中找到的所有程序集,复制所有源代码文件(例如在App_Code文件夹中找到),并将aspx,ascx文件解析为c#源文件。然后,ASP.NET将所有这些代码生成/编译到可运行的应用程序中。

这样做的优点之一是,它防止了.NET程序集DLL的#(在/ bin文件夹中)被ASP.NET辅助进程锁定并因此不可更新的可能性。

ASP.NET监视您网站中的文件更改,并在必要时将重新开始整个过程​​。

从理论上讲,该文件夹不需要任何维护,但会不时地进行,并且很少会需要删除内容。就是说,我在一家托管公司工作,每个共享服务器最多可以运行1200个站点,多年来,我无需在250台左右的计算机上触摸此文件夹。

MSDN文章“ 了解ASP.NET动态编译”中对此进行了概述。


嗨,Kev,我有一个COM DLL,它将被复制到此文件夹中,DLL在其当前文件夹中需要一些配置文件才能执行。我如何确保它们也被复制到此文件夹中?
拉克什

2
@robot-您可能已经找到了答案,但是为了将来的读者,您可以使用Reflection找到DLL的“原始”位置,然后以这种方式访问​​配置文件。请参阅stackoverflow.com/a/837501/211627
JDB仍记得Monica

2
由于持续的集成,该文件夹似乎对我来说已满-每次部署站点(一天几次)时,都会在该文件夹中创建一个新副本-到目前为止为29GB。
安迪·乔纳

3
作为一个网站托管服务,也许您永远都不会碰到这个文件夹,但是对于开发人员来说,这是迄今为止我们所要面对的最大头疼。复制和Visual Studio网站样式项目是一个噩梦,我每天必须多次清除此文件夹上的内容。
bikeman868

8

CLR在运行时进行编译时使用它。这是指向MSDN的链接,进一步说明。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.