asp.net - 如何在 asp.net Web 应用程序中启动新进程
问题描述
我们网络服务器上的默认浏览器是 IE。我们需要通过单击我们的一个网络应用程序的按钮来启动 Chrome 实例。
我编写了一个 asp.net 测试应用程序来尝试实现上述目标。在测试应用程序中,我在服务器端单击按钮启动一个进程以启动 Chrome,但 Chrome 窗口没有出现。当我获得进程 ID 并且 HasExited 属性为 false 时,该进程似乎开始正常。但是,屏幕上什么也没有出现,我似乎无法在进程列表中找到该进程。
我知道在 Web 应用程序中,一个进程在 asp.net 工作进程的上下文中启动,并且它无权访问桌面并且具有受限权限。因此,我授予 IIS Admin Service 进程权限以与本地计算机上的桌面进行交互(通过“进程”窗口)。此外,在代码中,我尝试使用我自己的用户帐户启动该过程,该用户帐户对本地计算机具有管理员访问权限,但仍然无法让 Chrome 窗口出现在屏幕上。
我的服务器端代码如下:
var psi = new ProcessStartInfo
{
FileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe",
Arguments = "http://www.msn.com",
CreateNoWindow = false,
UseShellExecute = true
UserName = "username",
Password = "secure password",
Domain = "domain"
};
var process = new Process
{
StartInfo = psi
};
var result = process.Start(); // result is true
int processId = process.Id; // processId is valid
我会很感激你的帮助。
解决方案
推荐阅读
- swift - 在 Swift 中使用 GraphAPI 将照片发布到 FB 页面
- java-9 - 如何使用拼图助手命令从 lib/ 目录中获取所有可能包的列表?
- mysql - MariaDB Select Into 输出文件认为文件存在
- git - 忽略 Git 中文件的修改
- html - Excel VBA将变量传递给单引号
- c - 不使用 fork() 的两个进程之间的通信
- java - 如何将不同的消息记录到 LoggerFactory 的不同文件中
- html - 如何使用 Flexbox 制作不对称的东西
- javascript - 单击时缩放到元素
- javascript - 反应:无法根据目标正确更新数组