【发布时间】:2019-12-06 11:20:26
【问题描述】:
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
cmd.StandardInput.WriteLine("@echo off");
cmd.StandardInput.WriteLine("echo.");
cmd.StandardInput.WriteLine(".\\lmutil.exe" + " lmstat -S adskflex -c xxxx@192.168.xx.xx > " + Server.MapPath("Status.txt"));
cmd.StandardInput.WriteLine("echo.");
cmd.StandardInput.WriteLine("echo.");
cmd.StandardInput.WriteLine("pause");
cmd.StandardInput.WriteLine("exit");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
此代码从 AutoDesk 许可证服务器 获取 status.txt 并将其保存到当前目录。每次 status.txt 都会更新。 在本地主机上一切正常,但在主服务器上却不行。
在真正的 IIS 服务器上 status.txt 不会更新。当我在服务器上打开 cmd 并执行此命令时,它会说
找不到 lmutil.exe
即使在所有代码所在的同一目录中。 我从 localhost 移动到服务器时遇到的所有问题...
【问题讨论】:
-
你有什么理由不直接启动lmutil.exe,而不是调用cmd并将数据传递给stdin?
标签: c# shell iis command-prompt autodesk