3

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

4

1 回答 1

0

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

于 2012-09-14T17:05:17.227 回答