【问题标题】:C# process.start not working on iisC# process.start 在 iis 上不起作用
【发布时间】:2014-11-13 13:34:02
【问题描述】:

我正在尝试使用来自 Web 应用程序的参数运行 exe。

我正在使用 Process.start() 但它似乎无法在 iis 上运行!

从 iis express 运行时运行良好。我将应用程序发布到我的本地 iis 作为测试,但它什么也没做。

我尝试设置 iis 管理服务以启用与桌面的交互,我告诉 iis 以我的用户凭据连接并将应用程序池设置为使用相同的用户凭据,但仍然没有任何效果!

还有什么其他人可以建议让这个工作!

干杯。

更新

通过将应用程序池标识设置为本地系统并仔细检查站点的凭据,我让 iis 运行该过程。

但正如预期的那样,应用程序不会与桌面交互,因此从命令行创建文件很简单,但运行带参数的应用程序并不会打开应用程序。

目前 iis 管理服务已检查与桌面的交互并正在使用本地系统帐户。

【问题讨论】:

  • 您是否收到错误,或者它似乎什么也不做?如果是后者,你在做什么来确定它没有运行?请记住,IIS 作为服务运行,并且服务无法与桌面交互,因此您的 EXE 将无法显示任何 UI——因此,如果您正在寻找一个窗口,您将看不到它.
  • 只是为了让我们清楚 - 你明白,如果你让这个工作,你启动的程序将在 服务器 上运行,而不是运行浏览器的机器(当它是另一台机器时)
  • @Damien_The_Unbeliever 我需要它在稍后在另一台机器上运行时在服务器上运行,这很奇怪。
  • @JoeWhite 它似乎什么也没做,我不知道它是没有运行还是没有出现,但我希望在进程中看到一些东西。作为测试,我尝试运行所需的应用程序并尝试使用 cmd.exe 创建文件。
  • IISExpress 通常在 Visual Studio 下像您一样运行。 IIS 通常不会像您一样运行。您需要检查您尝试启动的进程是否具有首先找到您要运行的程序然后运行它所需的所有权限和访问权限。

标签: c# .net process cmd


【解决方案1】:

好的,所以这不是一个真正的答案,但最后我通过将应用程序池标识设置为本地系统来让 process.start 工作。

但正如预期的那样,命令不会与桌面交互,但这足以满足我的应用程序需要做的事情。

抱歉回答不好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多