我们有一个用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服务执行此操作?
答案 0 :(得分:1)
事实证明它就像设置
一样简单setup.LoaderOptimization = LoaderOptimization.MultiDomain;
用于创建域的AppDomainSetup对象上的。这在IIS
下工作正常