我有一个允许定义和安排任务链的应用程序。这些任务是预定义的c#类,它们与用户定义的配置一起运行(想想WWF或逻辑应用程序,但非常特定于域)。
这些任务并不总是涵盖所有需要完成的任务,因此我已经添加了在c#运行空间中运行自定义PowerShell脚本的能力。在包含任务的边缘情况下,用户可以使用powershell任务来运行他们需要的任何自定义操作。
这很有效,但我遇到了自定义Powershell脚本创建永不关闭的新进程的问题。我使用取消令牌来允许中止脚本,但这只会关闭运行空间而不是它创建的进程。有哪些选项可以确保在退出脚本/运行空间时清除自定义PowerShell脚本可能创建的任何进程?
我能想到的唯一两个选择是:
C#和powershell环境之间容易传递信息/对象的感觉笨拙和破坏。我目前正在向PowerShell运行空间注入大量上下文信息,以便在用户定义的脚本中使用。