【问题标题】:Cross system process spawning and interaction跨系统进程产生和交互
【发布时间】:2009-04-09 15:54:48
【问题描述】:

我有一个正在开发的软件,它会在远程系统上产生短期进程来运行一些代码(主要是 SerialPort IO),这些代码可能会或可能不会与生成应用程序交互(但应该假设它是will),然后将根据命令终止。

生成这样的远程进程的最佳方法是什么(PSExec?WMI?System.Diagnostics.Process 可能?)进程生成后,我如何告诉它订阅它的主机?对于基于事件/消息的基本通信流程框架,SO 社区会推荐什么? WCF 是否非常适合这项任务?远程处理会更容易吗?我在这里有哪些选择?

【问题讨论】:

    标签: c# .net networking remoting


    【解决方案1】:

    我认为 System.Diagnostics.Process 不允许在远程系统上启动进程。因此,WMI 或对 psexec 之类的壳可能是您唯一的选择。

    关于订阅/交互选项,是的,WCF 是要走的路。避免远程处理:它对一般情况没有任何好处,不再得到增强,并且由于各种原因而被弃用,取而代之的是 WCF(由于版本控制和状态考虑,基本上分布式对象变得令人头疼;消息传递通常是更容易设置,理解和维护。如果我没记错的话,远程处理也没有安全性)。为了进行设置,当父进程生成远程进程时,它可以将 URL 作为命令行参数传递。父级在该 URL 上托管 WCF 服务。现在,如果生成的进程需要与父进程通信/订阅父进程,它只需连接到给定的 URL。如果父进程需要发起通信,则使 WCF 服务双工,或者让衍生进程托管自己的 WCF 服务,并通过父进程的服务告诉父进程 URL。

    【讨论】:

    • 如果您不介意,我真的很想与您联系以更详细地讨论这个问题,您愿意给我发电子邮件至 gree7637@vandals.uidaho.edu 吗?我会尽量不占用你太多时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-06
    • 2019-08-29
    • 1970-01-01
    相关资源
    最近更新 更多