IIS 6和x2B;ASP.NET-生成了许多临时文件
我有一个ASP.NET+一些在IIS 6(win 2003服务器)上运行的.NET web服务。问题是IIS正在“c:\WINDOWS\Temp”目录中生成大量(!)文件。大量文件意味着数千个文件,到目前为止,这些文件的大小已超过3G 这些文件由以下命令生成: C:\WINDOWS\SysWOW64\inetsrv>“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe”/t:library/utf8output/R:“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ASP.NET临时文件\vfagt\113819dd\db0d5802\assembly\dl3\fedc6ef1\006e24d8\u 3bc9ca01\VfAgentWService.DLL”/R:“C:\WINDOWS\assembly\GAC\MSIL\System.Web.Services\2.0.0\uUuU b03f5f7f11d50a3a\System.Web.Services.dll”/R:“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll”/R:“C:\WINDOWS\assembly\GAC\uMSIL\System.Xml\2.0.0.0\uUuU B77A561934E089\System.Xml.dll”/R:“C:\WINDOWS\assembly\GAC\MSIL\System\2.0.0.0\u934E089\u934E089系统”/C:\WINDOWS\TEMP\9i_i2bmg.dll”/debug-/optimize+/nostdlib/D:_动态XMLSERIALIZER_编译“C:\WINDOWS\TEMP\9i_i2bmg.0.cs” temp目录中的文件是*.out和*.err对,其中*.err文件大小为零,*.out文件包含编译输出消息 是什么导致IIS生成这么多文件 我怎样才能预防它 更新: 问题是我上面描述的命令(csc.exe)被执行了很多次,导致.out&.err被生成了很多次,直到它消耗了磁盘空间 所以-我的问题是:是什么导致这个命令运行这么多次?(我的web应用程序中没有那么多.aspx和.asmx文件) 谢谢,IIS 6和x2B;ASP.NET-生成了许多临时文件,asp.net,iis,compilation,tempdir,Asp.net,Iis,Compilation,Tempdir,我有一个ASP.NET+一些在IIS 6(win 2003服务器)上运行的.NET web服务。问题是IIS正在“c:\WINDOWS\Temp”目录中生成大量(!)文件。大量文件意味着数千个文件,到目前为止,这些文件的大小已超过3G 这些文件由以下命令生成: C:\WINDOWS\SysWOW64\inetsrv>“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe”/t:library/utf8output/R:“C:\WINDOWS\
Moe您无法阻止它。IIS+ASP.NET动态编译文件,如.aspx、.asmx、.ascx、.ashx、.asax和其他文件。这些都是模板文件,最终会转换为所选语言的源代码-C#、VB.NET或任何您选择编写aspx页面的语言 当收到页面请求时,ASP.NET的模型如下:
- 检查请求页面的程序集是否可用且最新。如果可用,请将请求传递给该页面
- 如果没有,则从相关模板(aspx、ascx等)生成源代码。将生成的源代码放入ASP.NET Temp目录
- 将源文件编译成动态命名的程序集,并将其放置在临时目录中。如您所见,如果使用C#,则意味着它运行csc.exe
- 加载新编译的程序集
- 将请求传递给该组件(例如,步骤1)
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET files
目录中的任何文件。当IIS和ASP.NET处于活动状态时,这将不可能。如果您有维护期,可以在站点关闭时删除它们。如果是开发人员计算机,只需停止IIS(NET stop w3svc
)删除该文件夹中的所有子目录,然后重新启动IIS(net start w3svc
)
相关:
-
-不确定这是否有帮助,但这里有几个描述类似情况的链接
在web.config中查找:
</system.diagnostics>
<switches>
<add name="XmlSerialization.Compilation" value="1" />
</switches>
</system.diagnostics>
值=1表示保存临时文件。您可以预编译序列化文件,以防止编译发生。老实说,这似乎与iis无关,但与csc(编译器)有关,感谢您的详细解释。但是,问题在于我上面描述的命令(csc.exe)正在执行多次,导致.out&.err生成多次,直到占用磁盘空间。所以-我的问题是:是什么导致此命令运行如此多次?(我的web应用中没有那么多.aspx&.asmx文件)。时间戳可能有问题。如果编译输出的时间戳晚于.aspx文件,则ASPNET决定运行编译器。例如,如果您将aspx文件的时间戳设置为将来某个时间(可能,但不合理)我的建议是停止IIS,删除临时文件文件夹,然后检查并更正所有ASPX文件上的时间戳,等等。