【问题标题】:command prompt do not opens up when calling (.exe) console application from web application c#从 Web 应用程序 c# 调用 (.exe) 控制台应用程序时,命令提示符不会打开
【发布时间】:2012-06-30 04:16:55
【问题描述】:

我正在使用我的网络应用程序中的这个函数来调用 exe 文件。当它调用 .exe 文件时,每件事都会准确地发生,我可以在任务管理器进程中将其视为正在运行的进程,但是为什么在调用此进程时没有打开命令提示符。

Web 应用程序托管在同一系统的 iis 上。

 public void RunconsoleApplication(string Id)
    {
        // Get the file path of your Application (exe)
        string filePath = @"E:/ConsoleApplication1/ConsoleApplication1/bin/Debug/ConsoleApplication1.exe";

        System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(filePath, Id);

        System.Diagnostics.Process p = System.Diagnostics.Process.Start(info);//called       

    }

更新

在visual atudio 上运行相同的应用程序时,会打开命令提示符。但在 iis 上托管时不会

【问题讨论】:

  • Dolly,尝试将 AppPool(在 IIS 上)的凭据设置为已登录的用户。我相信您看不到该窗口,因为它正在另一个用户上下文中运行。
  • 我已将其设置为管理员。给定的密​​码。并且在任务管理器中也显示进程的用户名作为管理员
  • 您是否以同一用户(管理员)身份登录?
  • 是的,我是。我很惊讶进程正在任务管理器中运行,图像名称为 ConsoleApplication1.exe *32,用户名为管理员,但未打开 cmd 窗口
  • 好的,另一个想法。使用此用户登录服务器,重新启动 IIS e 浏览此页面。我相信用当前会话启动 AppPool 可能会有所帮助。很抱歉一直在猜测,但这确实是一个奇怪的问题。

标签: c# console cmd


【解决方案1】:

IIS 及其子进程在不同的(和无窗口的)会话中运行。所以你看不到窗口是否打开。此外,某些进程可能会因此而表现异常(您可能没有遇到此类问题,并且不太可能遇到控制台应用程序问题)。

您可以通过在任务管理器中打开“会话 ID”列来查看它:查看 -> 选择列-> 会话 ID(在进程选项卡上)。

【讨论】:

    【解决方案2】:

    您是否尝试将窗口样式设置为最大化?

    ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
    startInfo.WindowStyle = ProcessWindowStyle.Maximized;
    Process.Start(startInfo);
    

    【讨论】:

    • 是的,我试过了,但 cmd 提示符在任何地方都看不到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多