【问题标题】:Run a program on the server through an ASP.NET page通过 ASP.NET 页面在服务器上运行程序
【发布时间】:2023-03-26 18:40:01
【问题描述】:

我们正在使用一种特殊的软件,该软件通常在我们的一台服务器机器上运行,用于解决一些科学问题并生成复杂的绘图 (jpg)。该程序的问题在于它通过命令行运行并且不能提供非常好的用户体验。为了解决这个问题,我开发了一个 ASP.NET 页面,它使用 System.Diagnostics.Process 方法调用服务器程序并将计算值返回给我们 LAN 上的用户。

当我在调试模式 (Visual Studio 2010) 下运行 ASP.NET 应用程序时,我能够看到程序窗口并且一切都计算正确。但是,一旦我在 IIS 上部署它,程序的行为就很奇怪。生成的图未正确显示某些值/颜色代码。此外,当 ASPNET 进程调用程序时,我无法看到程序窗口。

任何线索为什么会发生这种情况?我正在尝试以提升的权限运行 ASP.NET 应用程序,但不知道该怎么做。我已经在互联网上查看了数百篇帖子,但找不到任何具体的内容。如果有人能指出我正确的方向,我会很高兴。

系统信息: Windows 7 家庭版 IIS 7 Visual Studio 2010 (VB.NET)

我是初学者,因此请尽可能提供对关键术语的任何引用。

谢谢

这是我从 ASP.NET 应用程序调用程序的方式 -

嗨,Kev,这是我调用应用程序的方式:

        Dim luaProcess As Process = New Diagnostics.Process
        luaProcess.StartInfo.FileName = strFemmExePath
        luaProcess.StartInfo.Arguments = " -lua-script=" + strUserLuaFile

        luaProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
        luaProcess.StartInfo.UseShellExecute = False
        luaProcess.StartInfo.CreateNoWindow = False
        luaProcess.StartInfo.RedirectStandardError = True
        luaProcess.Start()

strFemmExePath 变量定义为服务器机器上的 exe 路径,即 C\Program Files\FEMM\bin\femm.exe。 Argument 采用一个脚本文件,其中包含程序的指令。

输出基本上是2个文件:

1 包含计算值的格式化文本文件,我正在使用 ASP.NET 读取并在一些格式化后显示回来。

第二个文件是一个包含图形的位图文件。我正在使用 ASP.NET 应用程序将此位图转换为 jpeg,因为它的大小非常大。

【问题讨论】:

  • 您能否详细说明您是如何调用此命令行应用程序的,即向我们展示代码。此外,这个控制台应用程序如何“将计算值返回给我们 LAN 上的用户”
  • 嗨,Kev,有关代码和输出信息,请参阅我的原始帖子。

标签: asp.net shell windows-7 iis-7 impersonation


【解决方案1】:

您看到控制台应用程序在您的开发 PC 上运行的唯一原因是您在自己的帐户下运行 Visual Studio,并且很可能使用内置的 Cassini 服务器。这意味着控制台应用将在您的帐户下启动,并有权显示控制台窗口。

在服务帐户(例如 IIS 工作进程使用的帐户)下运行时,这些帐户无法与登录用户的桌面交互,因此永远不会显示任何类型的 UI。

您的应用程序无法正确输出绘图的原因可能多种多样,而且在不知道其工作原理的情况下很难推测。

【讨论】:

  • 根据我在互联网上的研究,我了解您所说的有关桌面交互的内容。我不知道为什么情节不正确。正如您所指出的,在调试模式下它运行得非常好。我想知道是否可以在我的 Windows 帐户下运行该应用程序,因为该程序将驻留在 LAN 上并且没有安全问题。我尝试创建一个新的应用程序池并将凭据更改为我当前的 Windows 帐户,但这不起作用。
  • 该应用程序基本上调用了另一个帮助程序 exe 来绘制图形。数据在两个应用程序之间传递,以便正确显示输出。我有一种感觉,因为父进程被隐藏了,所以其他 exe 没有执行。有什么方法可以让服务与桌面交互吗?我在互联网上看到过一百万个帖子,人们诅咒微软删除此功能,但没有解决方案。安全性是一个公平的观点,但某些功能是不可避免的。您认为改用 Windows XP 或任何其他 Windows 操作系统会有所帮助吗?
猜你喜欢
  • 2014-08-17
  • 2020-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多