我遇到了 .NET 4 应用程序内存泄漏的问题。这不是通常意义上的“忘记清理”泄漏,他们正在执行编译,在内存中创建一堆 .NET 程序集,他们告诉我没有办法清除它们之后。所以现在我要继续提供这项服务。
因此我面临几个选择。有“将 IIS 工作进程设置为在内存变大时回收”。这会有所帮助,但对我来说,它似乎仍然是一个固有的亚稳态系统,而且池回收时会对用户产生影响,不是吗?
他们尝试将编译拆分成单独的临时应用程序域,但这样每个操作都非常慢,每次点击都会增加约 15 秒来生成应用程序域。所以他们不想这样做。
除了“大量回收”之外,我还能从系统方面做些什么来更永久地缓解这个问题吗?(或者应用程序的想法,但这更多是针对 SO 的。)
答案1
这听起来像是一个典型的编程错误。将要卸载的程序集移至它们自己的应用程序域,这样就没问题了。这就是我对需要卸载的插件等内容所做的。