我想在我发布这些文件的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。
(系统找不到路径。)
你能告诉我问题出在哪里吗?
答案 0 :(得分:0)
感谢您的帮助,我现在写了一个小窗口服务,他正在做这项工作。