1
我剛檢查AppDomain.CurrentDomain.GetAssemblies之前和應用程序池回收後,它似乎是這種情況。我不明白爲什麼一些86程序集在第一個實例中被加載,即當我部署應用程序,然後在回收之後只加載了28個程序集。應用程序池回收期間是否從應用程序域卸載程序集?
可能是什麼回事?
我剛檢查AppDomain.CurrentDomain.GetAssemblies之前和應用程序池回收後,它似乎是這種情況。我不明白爲什麼一些86程序集在第一個實例中被加載,即當我部署應用程序,然後在回收之後只加載了28個程序集。應用程序池回收期間是否從應用程序域卸載程序集?
可能是什麼回事?
這是IIS的known behavior。 IIS回收後,程序集按需加載。
如果你想獲得所有可用的組件,你可以在System.Web.Compilation.BuildManager
型使用GetReferencedAssemblies
方法。
例如:
IEnumerable<Assembly> assemblies = AppDomain.CurrentDomain.GetAssemblies();
if (HostingEnvironment.InClientBuildManager)
{
assemblies = assemblies.Union(BuildManager.GetReferencedAssemblies().Cast<Assembly>());
}
是專用或共享的應用程序池? – bUKaneer
一個專用的應用程序池。我專門爲有問題的網站創建了一個應用程序池。之前它在與其他約5個網站共享應用程序池時遇到問題,但即使使用專用應用程序池也不提供任何解決方案。 – brumScouse
您是否找到解決問題的方法?如果是,請分享一下嗎? – pinki