获取ASP.NET MVC Web应用程序以加载域中性

Jos*_*eld 7 .net asp.net clr applicationdomain asp.net-mvc-4

我的公司拥有大量客户,我们目前能够为每台服务器处理有限数量的客户.但是,每个客户端都使用相同的核心Web应用程序.目前,一些内容存储在每个站点的本地,因此我们不能使用相同的站点/应用程序池; 虽然我们确实有一个多租户转换项目.

我们强烈签署了所有程序集,我认为看看我们是否可以让它们在ASP.NET中加载域中性是一个有趣的想法.这样做的好处是显着降低了我们的内存成本,这是我们目前最高的成本/限制因素之一.此外,似乎我们能够简化当前[编译] IO/CPU绑定的部署过程,并且经常花费我们大约6个小时.

此任务意味着我希望将程序集从App池的应用程序域中的加载移动到共享域.

我对域中性加载要求的理解是:

  1. 必须在GAC中对程序集进行强烈签名.
  2. 绑定闭包中的依赖关系必须在GAC [并且强烈签名]中.

我试图让它工作,但我不能让它适用于一个小样本应用程序.我首先尝试将Newstonsoft.Json放入GAC,令我兴奋的是,它在回收后转移到共享域.但是,即使在对所有其他域进行GAC操作之后,我也无法让任何其他人转到共享域:

在此输入图像描述

我的目标是让我的主应用程序DLL加载域中性.我如何调试/继续前进,找出为什么剩余的Assemblies没有被加载为域中立?

另外,我对NGEN代码页共享如何关联或与共享域加载的程序集形成对比有点困惑.

Dex*_*ion 1

ASP.NET 4.5 中的 Intern 程序集可以作为一种解决方案。查找 aspnet_intern 命令和 interndir 参数。