我正在尝试将现有系统从 Windows XP Professional/IIS 5.1 升级到 Windows 7 Ultimate(32 位)/IIS 7.5。原始系统运行一个经典的 ASP 网站(仅对本地主机可用),该网站使用“ASPExec”在本地计算机上启动桌面应用程序(.bat、.cmd、.exe 等)。在 Windows 7 Ultimate / IIS 7.5 下,应用程序无法从 ASP 页面启动。
作为测试(最终目标不是启动记事本),我尝试过:
<%
Set Executor = Server.CreateObject("ASPExec.Execute")
Executor.Application = "notepad.exe"
Executor.ShowWindow = True
strResult = Executor.ExecuteWinApp
%>
我也试过:
<%
Set wshell = CreateObject("WScript.Shell")
wshell.run "notepad.exe"
Set wshell = Nothing
%>
这两种方法都会导致 notepad.exe 显示在 Windows 进程列表中,但无法在桌面上启动应用程序。对于我尝试运行的任何 .exe 都是如此,而 .bat 或 .cmd 文件根本无法执行任何操作。
在 IIS 5.1 中,ASP 应用程序的原作者使用“IIS Admin”服务和“World Wide Web Publishing”服务上的“允许服务与桌面交互”选项来完成这项工作。除了允许桌面交互服务之外的所有问题,IIS 7 不再使用“IIS Admin”服务,所以这不是一个选项。
我正在寻找 Windows/IIS 方面的解决方法或 ASP 中可能实现相同预期最终结果的另一个选项。