Envrionment:.Net 2.0,Windows 2003,64bit
我正在尝试将网站从旧服务器移动到新服务器,以下代码在移动代码后不再有效:
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 won't output lines in process (on website)
但我不明白该部分"创建一个具有执行批处理脚本权限的新用户,并选择该用户作为IIS中的AppPool用户"。我知道如何创建新用户,但不是能够找出给用户执行.exe或批处理文件的权限的方式。
任何建议都会有所帮助。
谢谢,
答案 0 :(得分:0)
它可能是新服务器上的.NET Trust级别。尝试将IIS管理器中的信任级别设置为该应用程序的“完全”。