我正在尝试运行两个不同的AppDomains
,以便可以为非常不同的Web服务使用单独的安全上下文。
我创建了一个测试类来验证我确实在域中运行。我发布了一个日志,显示了AppDomain.CurrentDomain.FriendlyName
,它始终显示控制台应用程序的默认域,而不是我在其上创建该域的域。
AppDomain _domain2 = AppDomain.CreateDomain("Domain2");
Type classType = typeof(Class1);
_domain2.Load(classType.Assembly.FullName);
Class1 proxy2 = (Class1)_domain2.CreateInstanceFromAndUnwrap
(classType.Assembly.Location, classType.FullName);
proxy2.Something("2");
AppDomain.Unload(_domain2);
Class1在外部程序集中(不确定是否需要)。
[Serializable]
public class Class1
{
private static readonly ILog log = LogManager.GetLogger(typeof(Class1));
public void Something(string domain)
{
log.Debug("This is from domain:" + domain + " " + AppDomain.CurrentDomain.FriendlyName
+ " - " + AppDomain.CurrentDomain.Id);
}
}
输出如下:
This is from domain:2 ConsoleApplication1.vshost.exe - 1
任何帮助将不胜感激。