在asp.net应用程序中创建powershell运行空间并运行命令有什么问题吗?
我有一个基本的例子正常工作,但我想知道是否有任何陷阱等着我。
我特别想知道:
答案 0 :(得分:3)
只要你没有明确地炮轰powershell.exe,而是直接使用Runspace
和Pipeline
个对象,你可以放心它相当轻量级。顺便说一句,如果您尝试通过C#与cmdlet进行交互,则只有从PSCmdlet
派生的cmdlet需要管道;直接从Cmdlet
派生的那些可以通过Invoke方法在没有管道的情况下调用。这是最轻量级的方法。
答案 1 :(得分:1)
这应该没问题。我没有在ASP.NET中完成此操作,但我使用桌面应用程序托管进程。除非您使用后台作业,否则不会启动外部PowerShell进程。我认为Quest的人们也用Mobile Shell做了类似的事情。
答案 2 :(得分:1)
我可以看到,其他人建议使用PowerShell。嗯,就个人而言,我会更加关注。为什么?
每个Web请求都应尽快处理,不得有任何阻止。如果脚本包含与网络一起使用的命令,则可能存在一些超时(例如,如果计算机不可访问)。处理线程将一直被阻止,不能提供任何其他Web请求。然后很快就会出现内部服务器错误和类似的响应。
除此之外(未经证实),我怀疑PowerShell比C#中的类似代码消耗更多内存。
我没有声称不使用Powershell ,只是注意;)