首页 > 解决方案 > 如何在 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

我会很感激你的帮助。

标签: asp.netwindowsprocess

解决方案


推荐阅读