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 の個別のコピーをロードしているため、処理時間の大きな部分を占めています。アセンブリがすべてのアプリドメインで共有されるように、何らかの方法でアセンブリにドメインニュートラルをロードさせることができることを理解しています。IIS Web サービスでこれを行うにはどうすればよいですか?