AppDomain.Execute 程序集卡住

Posted

技术标签:

【中文标题】AppDomain.Execute 程序集卡住【英文标题】:AppDomain.Execute Assembly gets stuck 【发布时间】:2013-08-14 20:03:53 【问题描述】:

我对这个命令有问题ExecuteAssembly 我让我的应用程序使用管道流数据运行,然后我切换到使用 netnamed 管道的 wcf。 这与问题无关。

服务器一旦启动,就会执行一些操作,其中之一是执行运行客户端并连接到服务器的程序集。

代码:

String modulePath = (String)path;
AppDomainSetup objDomainSetup = new AppDomainSetup()  ApplicationBase = Path.GetDirectoryName(modulePath) ;
string moduleConfigPath = String.Format("0.config", modulePath);
if (File.Exists(moduleConfigPath))

    // This is important... in case the loding module has a configuration file.
    objDomainSetup.ConfigurationFile = moduleConfigPath;


//We give the new app domain the same permission its parent has.
System.Security.Policy.Evidence baseEvidence = AppDomain.CurrentDomain.Evidence;
System.Security.Policy.Evidence objEvidence = new System.Security.Policy.Evidence(baseEvidence);
objModuleDomain = AppDomain.CreateDomain(ChannelName, objEvidence, objDomainSetup);
objModuleDomain.ExecuteAssembly(modulePath);

我检查了路径,一切似乎都是正确的,并且从路径指向的 .exe 被执行。 但是 ExecuteAssembly 卡在那里,下面的语句没有被执行。

有什么猜测吗? 谢谢

【问题讨论】:

您的 .exe (modulePath) 完成并退出还是继续运行?我相信 ExecuteAssembly 会阻塞,直到您的模块返回。 我的 .exe main() 函数创建客户端实例,连接并休眠(无限)但执行程序集没有阻塞 实际上我让这段代码以这种方式与管道流一起工作并且它没有阻塞。 【参考方案1】:

AppDomain.ExecuteAssembly() 执行程序集并在程序集 .exe 完成时完成。 我有一个 Sleep(Infinite) 使装配无法完成。

【讨论】:

以上是关于AppDomain.Execute 程序集卡住的主要内容,如果未能解决你的问题,请参考以下文章

由于配置错误,iOS 应用 Ad Hoc 安装卡住

VS 2010 负载测试计数器集卡住

图像分类。验证损失在初始训练期间卡住(v1)

关于DETR模型训练自定义数据集AP=0问题

Android Wifi Direct 软 AP 配置

问题集录--Android:解决Studio新建项目时,在 Building gradle project info 一直卡住