如何允许IIS网站用户执行.cmd程序

如何允许IIS网站用户执行.cmd程序

我遇到过需要在 IIS 网站上执行 .cmd 程序的情况。这是一个用于验证和传输文件的第三方程序,因此我别无选择。

我通过以编程方式在新进程中启动该程序来实现此目的。

对 .exe 文件采用这种方法效果很好。我收到了程序的标准输出。但是当我尝试对 .cmd 文件执行相同操作时,情况并非如此。没有收到标准输出。

该代码在我的本地计算机上完美运行,因此我认为问题出在 IIS 配置上。可能是用户或文件限制。

有人可以给我指明正确的方向吗?

编辑这是我使用的 C# 代码。

    ProcessStartInfo info = new ProcessStartInfo(); 
    info.WindowStyle = ProcessWindowStyle.Hidden; 
    info.CreateNoWindow = true;
    info.FileName = AppDomain.CurrentDomain.BaseDirectory + @"export\foo.cmd"; 
    //replacing foo.cmd with foo.exe works
    info.UseShellExecute = false; 
    info.RedirectStandardOutput = true; 
    using (Process process = Process.Start(info)) 
    { 
        using (StreamReader reader = process.StandardOutput) 
        {
            string result = reader.ReadToEnd();
            Response.Write(result);
        }
    }

答案1

我自己找到了解决方案。我已将我的发现发布在堆栈溢出

事实上,这是一个 IIS AppPool 用户问题,因此在这里发布问题并非完全没有希望。

相关内容