Process.Start在MVC 4项目发布时无法正常工作

时间:2014-05-13 09:08:37

标签: c# asp.net-mvc asp.net-mvc-4 powershell

从我的MVC4页面,我需要调用Powershell脚本。我真的不需要从中返回任何结果,只需确保脚本运行。

当我在计算机中调试时,它工作正常,但是当我在发布后尝试时,它只是没有做任何事情或显示任何错误。

这是我的控制器中的代码:

using (new Impersonator(ConfigurationManager.AppSettings["ImpersonatorUser"], 
                        ConfigurationManager.AppSettings["ImpersonatorDomain"], 
                        ConfigurationManager.AppSettings["ImpersonatorPassword"]))
{
    var scr = new PSScriptParam("\\\\SERVER\\...\\Script.ps1", Param);
    scr.Run();
}

PSScriptParam类就是这样:

public class PSScriptParam
{
    public string Script { get; set; }
    public string Param { get; set; }

    public PSScriptParam(string Path, string param)
    {
        Param = param;
        Script = Path;
    }

    public void Run()
    {

        try
        {
            Process _Proc = Process.Start("Powershell.exe", Script + " '" + Param + "'");

        }

        catch (Exception err)
        {
            System.IO.File.WriteAllText("\\\\SERVER\\...\\Error.txt", err.Message.ToString());
        }

    }
}

模仿者正在使用域管理员帐户,并且执行策略在服务器中设置为不受限制(从cmd运行脚本没有问题)。

有人可以帮忙吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

在服务器中应用挂起的更新后,此问题已得到解决...即使我不确定它为什么不起作用,更新Windows也解决了问题。