我们使用的是一种通常在我们的服务器上运行的特殊软件,用于解决一些科学问题并生成复杂的图表(jpg)。该程序的问题在于它通过命令行运行,并没有提供非常好的用户体验。为了解决这个问题,我开发了一个ASP.NET页面,它使用System.Diagnostics.Process方法调用服务器程序,并将计算值返回给LAN上的用户。
当我在调试模式(Visual Studio 2010)中运行ASP.NET应用程序时,我能够看到程序窗口,并且所有内容都已正确计算。但是,只要我在IIS上部署它,程序就会表现得很奇怪。生成的图表未正确显示某些值/颜色代码。此外,当ASPNET进程调用程序时,我无法看到程序窗口。
为什么会发生这种情况的任何线索?我试图使用提升的权限运行ASP.NET应用程序,但不知道如何做到这一点。我已经在互联网上检查了数百个帖子,但无法找到任何具体内容。如果有人能指出我正确的方向,我会很高兴的。
系统信息: Windows 7 Home 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,因为它的大小非常大。
答案 0 :(得分:1)
您在开发PC上运行控制台应用程序的唯一原因是您在自己的帐户下运行Visual Studio,并且很可能使用内置的Cassini服务器。这意味着控制台应用程序将在您的帐户下启动,并有权显示控制台窗口。
在服务帐户(例如和IIS工作进程使用的帐户)下运行时,这些帐户无法与登录用户的桌面交互,因此永远不会显示任何类型的UI。
为什么你的应用程序没有正确输出图表的原因可能很多,而且不知道它是如何工作的,很难推测。