繁体   English   中英

通过使用System.Diagnostics无法运行cmd.exe

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM