2012-09-14 13 views
3

我有一个IIS托管的WCF服务,昨天我发现有66,235文件夹(!!!)创建临时文件夹下5个级别下临时ASP.NET文件“目录(\ 234lkj \ 98734dc \ assembly \ tmp)。这些文件夹中的每一个都只有一个服务所需的dll,它只需要6个,因此每个dll在不同文件夹上被复制约11,000次。 IIS是否将它们从bin文件夹复制,无论它们是否更改?这是正常的行为吗?是否有一个配置设置可以防止IIS(或任何进程正在执行此操作)不必要地复制dll?IIS托管WCF服务创建数以千计的临时文件夹

回答

0

.NET使用temp文件夹来JIT编译其他服务的引用。 .NET需要一个地方来创建这些文件,然后编译这些代码以最终使用该服务。现在,为什么看到这么多的文件可能与设置托管该站点的应用程序池的方式有关。如果您查看应用程序池的高级设置,请查看分配了多少工作进程。每个工作进程都可以存在自己的内存,所以如果多个服务引用比比皆是,这将需要多个文件夹被JIT。另外,请检查以确保进程孤儿没有设置为开启。如果是这样,你的进程可以留下文件,导致你看到的积累。

+0

我使用的DefaultAppPool最大工作进程= 2和进程孤立 - >启用= False。我四天前删除了所有临时文件夹,上次检查时创建了大约2,000个新文件夹。来想一想......为什么首先需要这些文件夹?我理解临时asp.net文件的作用,但是在这个服务中,所有的东西都已经编译好了,任何地方都没有源代码文件,只是将dll从一个文件夹盲目地复制到另一个文件夹中。有什么不对...... – Sam