ASP.NET 页面请求的处理过程需要使用一些临时文件。当您在 Web 服务器上安装 ASP.NET 2.0 时,所创建的文件夹层次结构如下:
%WINDOWS%\Microsoft.NET\Framework\v2.0.50727
这里的版本号指的是 ASP.NET 2.0 的零售版。ASP.NET 的每个发布版本(包括每个过渡性的内部版本)都有一个唯一的版本号,并且会创建不同的文件夹树,以便支持不同版本的并行执行。因此,您务必要指定您的应用程序所适用的 ASP.NET 版本,这一点极为重要。在 ASP.NET 1.x 和 ASP.NET 2.0 下运行的应用程序基于物理形式上独立的文件夹。在 Microsoft.NET\Framework 文件夹下,您会找到与已安装的 ASP.NET 版本数相同数量的 vX.X.XXXX 子文件夹(请参见图 1)。
图 1 ASP.NET 1.0、1.1、2.0 和 3.0 运行库文件 (单击该图像获得较小视图)
图 1 ASP.NET 1.0、1.1、2.0 和 3.0 运行库文件 (单击该图像获得较大视图)
在已安装版本的根文件夹下,您会看到许多子目录。CONFIG 文件夹包含计算机配置文件,其中包括 machine.config 和用于所有站点的基本 web.config 文件。名为 ASP.NETWebAdminFiles 的文件夹包含构成网站管理工具的源文件,您可从 Visual Studio® 2005 内部运行该工具。最后,Temporary ASP.NET Files 文件夹包含为页面和资源提供服务而创建的所有临时文件和程序集。要找到为您的 Web 页面动态创建的文件,您需要查看此文件夹子树。请注意,Temporary ASP.NET Files 目录是存放动态创建的文件的默认位置,但可以使用 web.config 文件中的 <compilation> 部分按应用程序对其进行配置:
<compilation tempDirectory="d:\MyTempFiles" />
当应用程序第一次在计算机上执行时,在临时文件目录下就会创建一个新的子文件夹。编译子文件夹的名称与应用程序的 IIS 虚拟目录的名称相同。如果您只是使用 Visual Studio 2005 内嵌的 Web 服务器测试应用程序,那么子文件夹会采用该 Web 应用程序的根文件夹的名称。如果您从 Web 服务器的根文件夹调用页面,您将在根子文件夹下找到它们的临时文件(请参见图 2)。
图 2 Web 测试服务器上的 WebApp (单击该图像获得较小视图)
图 2 Web 测试服务器上的 WebApp (单击该图像获得较大视图)
在应用程序的编译子文件夹下,有一组使用散列名称的目录。此处显示了通常可以找到临时文件的路径。(最后两个目录包含的是假名称,但实际显示的就是这样的名称。)
\v2.0.50727\Temporary ASP.NET Files\MyWebApp\3678b103\e60405c7
您可以使用以下语句,以编程的方式检索指定应用程序的临时文件所在的子文件夹的路径:
Dim tempFilesFolder As String = HttpRuntime.CodegenDir
ASP.NET 会定期在应用程序发生改变、需要重新编译时清理编译文件夹并删除陈旧的资源,但 Temporary ASP.NET Files 目录下的子树的大小可能会显著地增加,在测试计算机上更是如此。 作为管理员,您应密切关注 Temporary ASP.NET Files 下的目录,并确保所有目录都是与当前活动的应用程序有关的。如果您无意间删除了一个处于活动状态的应用程序的子树,不必惊慌。您将丢失所有预编译的页面和资源并会将应用程序重置到其最初的编译状态;但下一个请求将触发对每个页面或一批页面(具体取决于配置)执行新的编译过程,因此最终不会丢失任何信息或页面,只不过用户在处理下一个请求时将感觉到首次命中延迟。现在,我们来看某一应用程序的编译文件夹的内容。
详见:http://msdn.microsoft.com/msdnmag/issues/07/01/cuttingedge/default.aspx?loc=zh/#S2
(来自MSDN)