我有一个IIS托管的WCF服务,昨天我发现在“Temporary ASP.NET Files”目录下的一个临时文件夹中创建了66,235个文件夹(!!!)(\ 234lkj \ 98734dc \ assembly \ tmp)中。这些文件夹中的每一个都只有一个服务所需的dll,只需要6个,所以每个dll在不同的文件夹上复制了大约11,000次。 IIS是否从bin文件夹中复制它们,无论它们是否发生变化?这是正常的行为吗?是否有配置设置会阻止IIS(或任何进程正在执行此操作)不必要地复制DLL?
答案 0 :(得分:0)
.NET使用临时文件夹来编译来自其他服务的JIT编译引用。 .NET需要一个位置来创建文件,然后编译此代码以最终使用该服务。现在,为什么您看到这么多文件可能与如何设置托管站点的应用程序池有关。如果查看应用程序池的高级设置,请查看分配了多少个工作进程。每个工作进程都可以存在自己的内存,因此如果多个服务引用比比皆是,则需要多个文件夹进行JIT。另外,请检查以确保进程孤立未设置为on。如果是这样,您的进程可以留下文件,导致您看到的构建。