AppDomain.CurrentDomain始终是默认值

时间:2020-05-12 19:50:09

标签: c# appdomain

我正在尝试运行两个不同的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

任何帮助将不胜感激。

0 个答案:

没有答案