2013-02-14 34 views
0

我从c#程序调用Powershell脚本,得到PSObjects的集合,作为pipeline.Invoke()的结果。作为PS脚本的一部分,使用Net.Mail.SmtpClient发送电子邮件。但是,发送电子邮件需要一些时间,所以我将电子邮件发送代码移动到使用Start-Jon -ScriptBlock执行的脚本块中,然后问题就开始了:电子邮件未发送。当我从命令行执行脚本时,它会发送一封电子邮件。带有从c调用的后台作业的Powershell脚本#

什么能是什么原因?

+0

任何输出或错误消息? – 2013-02-14 08:35:18

+0

不是。 'pipeline'不返回任何错误,脚本工作(从某种意义上说,它将处理后的数据返回给c#程序,只发送电子邮件。 – 2013-02-14 09:05:01

+0

您是否尝试过运行一个“dumber”脚本,即只写入参数/参数的脚本传递给文件而不是发送电子邮件。 – 2013-02-14 09:45:22

回答

1

实际上,在向代码中添加Wait-Job(使其同步)之后,它再次运行。我想我明白了。 我在终止主机的代码末尾调用了runspace.Close(),所以Powershell后台作业没有机会执行。所以我不幸地看错了地方。