1

我们有一个用 C# 编写的 Web 服务,托管在 IIS 下。我们使用 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 服务执行此操作?

4

1 回答 1

1

原来它就像设置一样简单

setup.LoaderOptimization = LoaderOptimization.MultiDomain;

在用于创建域的 AppDomainSetup 对象上。这在 IIS 下工作正常

于 2013-11-25T13:31:51.300 回答