【发布时间】: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