通过CMD,asp.NET MVC 4执行.bat文件

时间:2014-10-30 11:27:51

标签: asp.net-mvc windows batch-file cmd

我想在我发布这些文件的IIS服务器上通过CMD执行.bat文件。我将批处理文件放在解决方案的App_Data目录中,并将其设置为“始终复制”,我在部署的IIS上将其设置为。

我也有一个网站(.cshtml),如果我打电话给这个网站,它应该使用批处理文件继续cmd。我用这段代码完成了这个:

string filePath = HttpContext.Current.Server.MapPath("~/App_data/Auto_Deploy_" + branch + ".bat");
        ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd.exe", "/c " + filePath);
        procStartInfo.WorkingDirectory = "C:\\";
        procStartInfo.RedirectStandardOutput = true;
        procStartInfo.UseShellExecute = false;
        procStartInfo.CreateNoWindow = false;
        procStartInfo.RedirectStandardError = true;
if (Environment.OSVersion.Version.Major >= 6)
        {
            procStartInfo.Verb = "runas";
        }

        procStartInfo.FileName = "cmd.exe";

我开始采取行动:

Process proc = new Process();
        proc.StartInfo = processStartInfo;
        proc.Start();
        proc.WaitForExit();

我还生成了app.manifest并编辑了行

<requestedExecutionLevel>

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

因为我认为应该使用管理员权限来完成。

如果我从localhost(在服务器上)连接到网站,我会直接访问网页并运行此脚本,并在屏幕上发布输出和错误。

我总是得到同样的错误:

  

Das System kann den angegebenen Pfad nicht finden。

     

(系统找不到路径。)

你能告诉我问题出在哪里吗?

1 个答案:

答案 0 :(得分:0)

感谢您的帮助,我现在写了一个小窗口服务,他正在做这项工作。