[英]Unable to run cmd.exe by using System.Diagnostics
环境:.Net 2.0,Windows 2003、64位
我正在尝试将网站从旧服务器移动到新服务器,并且在移动代码后,以下代码不再起作用:
System.Diagnostics.ProcessStartInfo psi = new
System.Diagnostics.ProcessStartInfo("cmd.exe");
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardError = true;
// Start the process
System.Diagnostics.Process proc = System.Diagnostics.Process.Start(psi);
System.IO.StreamReader strm = proc.StandardError;
System.IO.StreamReader sOut = proc.StandardOutput;
// Attach the in for writing
System.IO.StreamWriter sIn = proc.StandardInput;
sIn.WriteLine(exec);
strm.Close();
sIn.WriteLine("EXIT");
proc.Close();
// Read the sOut to a string.
string results = sOut.ReadToEnd().Trim();
// Close the io Streams;
sIn.Close();
sOut.Close();
看来系统不允许运行.exe。 该代码在先前的服务器上正常运行,因此我猜测这是某些类型的系统配置问题。 我在这里发现了类似的问题: Foo.cmd不会输出正在处理的行(在网站上)
但是我不理解“创建具有执行批处理脚本的特权并在IIS中选择该用户作为AppPool用户的特权的新用户”这一部分。我知道如何创建一个新用户,但无法弄清楚给出一个新用户的方式。用户执行.exe或批处理文件的权限。
任何意见将是有益的。
谢谢,
新服务器上可能是.NET信任级别。 尝试将该应用程序的IIS管理器中的信任级别设置为“完全”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.