2015-12-21 71 views
0

我正在使用ASP.Net MVC中的Powershell运行空间,并且很难获得有关如何检查现有Powershell运行空间状态的文档。 真的很感谢任何见解!如何在c#中获取powershell运行空间状态#

控制器

public class DemoController : ApiController 
{ 
    PowerShell psInstance = PowerShell.Create(); 
    static Runspace rSpace = RunspaceFactory.CreateRunspace(); 

... 

private void Initialise() 
    { 
     try 
     { 
      psInstance.Runspace = rSpace; 
      if (HOW TO CHECK IF RUNSPACE IS ALREADY OPEN?) <<-- 
      { 
       DO NOTHING 
      } 
       else 
      { 
       rSpace.Open(); 
       LoadModules(); 
      } 
     } 
     catch (CmdletInvocationException e) 
     { 
      rSpace.Close(); 
      rSpace.Dispose(); 
      psInstance.Dispose(); 
      throw e; 
     } 
    } 
+1

你找不到[文件](https://msdn.microsoft.com/en-us/library/system.management .automation.runspaces.runspace.runspacestateinfo(v = vs.85).aspx)呢?另外,为什么不创建一个静态/类构造函数,只是一次“打开”它? –

+0

好点....我可能就这样做! – ma11achy

回答

2

检查RunspaceStateInfo财产

if(rSpace.RunspaceStateInfo.State == RunspaceState.Opened) 
{ 
    // runspace is open, do stuff 
} 
else if(rSpace.RunspaceStateInfo.State == RunspaceState.BeforeOpen) 
{ 
    // call rSpace.Open() before invocation 
} 
else 
{ 
    // runspace state is either broken, already in use or closed 
} 
+0

你先生,是个绅士和学者。工作过一次,谢谢! – ma11achy

相关问题