从ASP.Net进程调用Powershell是否可以

时间:2010-09-08 15:13:01

标签: asp.net powershell

在asp.net应用程序中创建powershell运行空间并运行命令有什么问题吗?

我有一个基本的例子正常工作,但我想知道是否有任何陷阱等着我。

我特别想知道:

  • 这是一个轻量级的进程操作,还是会引发另一个可能导致不可预测行为的进程。

3 个答案:

答案 0 :(得分:3)

只要你没有明确地炮轰powershell.exe,而是直接使用RunspacePipeline个对象,你可以放心它相当轻量级。顺便说一句,如果您尝试通过C#与cmdlet进行交互,则只有从PSCmdlet派生的cmdlet需要管道;直接从Cmdlet派生的那些可以通过Invoke方法在没有管道的情况下调用。这是最轻量级的方法。

答案 1 :(得分:1)

这应该没问题。我没有在ASP.NET中完成此操作,但我使用桌面应用程序托管进程。除非您使用后台作业,否则不会启动外部PowerShell进程。我认为Quest的人们也用Mobile Shell做了类似的事情。

答案 2 :(得分:1)

我可以看到,其他人建议使用PowerShell。嗯,就个人而言,我会更加关注。为什么?

每个Web请求都应尽快处理,不得有任何阻止。如果脚本包含与网络一起使用的命令,则可能存在一些超时(例如,如果计算机不可访问)。处理线程将一直被阻止,不能提供任何其他Web请求。然后很快就会出现内部服务器错误和类似的响应。

除此之外(未经证实),我怀疑PowerShell比C#中的类似代码消耗更多内存。

我没有声称​​不使用Powershell ,只是注意;)