我想出了一个soltuion,几乎适合我想要的。我无法获得新的AppDomain执行过程,因为它的过程相同,所以我只抓取当前的输出....除非它不起作用。如果我创建一个新的AppDomain(如下所示),WCF服务的调用者(一个ASPX页面)要求输入用户名两次,然后失败并且没有错误消息。如果我使用AppDomain.SetData更改当前域的配置,它会开始执行该过程,但会引发奇怪的错误。它几乎看起来像过程无法找到其依赖(依然存在)。这段代码看起来有什么问题吗?
StringBuilder buffer = new StringBuilder();
StringWriter writer = new StringWriter(buffer);
Console.SetOut(writer);
AppDomainSetup domainSetup = new AppDomainSetup();
domainSetup.ApplicationBase = CommandLinePath;
domainSetup.ConfigurationFile = String.Format("{0}.{1}.config", ApplicationName, modifier);
AppDomain newDomain = AppDomain.CreateDomain("NewDomain", null, domainSetup);
newDomain.ExecuteAssembly(CommandLinePath + ApplicationName, null, args);
return buffer.ToString();
是的,我想过做一个类似这样的解决方案。它可以工作,但与我说服现有应用程序加载不同配置文件的解决方案相比,它并不特别“漂亮”。再说一次,这种情况一点都不漂亮,所以它可能就是这样做的方式...... – Deeko 2011-04-05 17:02:23