我可以在IIS托管网站上的AppDomains之间共享dll吗?

时间:2013-11-01 11:42:33

标签: c# iis appdomain

我们有一个用IIS编写的C#编写的Web服务。我们使用AppDomains来分离任务的调用 - 每个调用都在一个单独的域中运行。代码执行如下操作:

public class Simplified
{
    public void Run()
    {
        AppDomain workDomain = AppDomain.CreateDomain(...);
        var workUnit = (IWorkUnit)workDomain.CreateInstanceAndUnwrap(...);
        workUnit.Execute(...);
        //Done - but keep the workUnit around in case we need it again
    }
}

然而,每个AppDomain正在加载我们的dll的单独副本 - 这占了很大一部分处理时间。我知道你可以以某种方式使程序集加载域中立,以便它们在所有appdomains中共享。我如何为我们的IIS Web服务执行此操作?

1 个答案:

答案 0 :(得分:1)

事实证明它就像设置

一样简单
setup.LoaderOptimization = LoaderOptimization.MultiDomain;
用于创建域的AppDomainSetup对象上的

。这在IIS

下工作正常