我们有一个用 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 服务执行此操作?