从 Web 应用程序在服务器上启动 UI
Start UI on server from web application
我正在尝试使用 Web 应用程序 UI(chrome、firefox、IE 等浏览器 运行ning。
当我使用以下代码时(在我的本地机器和服务器上)
Process.Start(@"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe");
Process.Start(@"C:\Program Files (x86)\Mozilla Firefox\firefox.exe");
Process.Start(@"C:\Program Files\Internet Explorer\iexplore.exe");
在控制台应用程序中,这没有问题。这三个都可以正常启动。
class Program
{
static void Main(string[] args)
{
Process.Start(@"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe");
...
}
}
当我从控制器方法尝试这个时,这不起作用。
public class MyController : Controller
{
public ActionResult QuickStart()
{
Process.Start(@"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe");
...
}
}
如果我启动我自己的自定义可执行文件,它会 运行(我的测试可执行文件将文件写入磁盘)但它不会显示它应该显示的控制台。 )
根据我的发现,这是因为系统没有关于此 ui 必须显示给哪个用户的任何上下文?所以我尝试模拟每个可能的用户(不起作用,因为模拟与将当前会话作为登录用户不同?)并且我已经尝试为每个可能的 WindowsIdentity 启动该过程,但仍然没有发生。
有谁知道我可以做些什么来完成这项工作?
只要您的应用使用其他凭据,它就会创建一个新会话。要解决这个问题,您需要制作一个小型系统托盘类型的应用程序,以便您可以以某个帐户登录,然后 运行 这个应用程序会侦听来自您的服务的命令,然后在该会话中弹出您需要的任何内容到,并且用户可以看到中间应用程序 运行s as.
我正在尝试使用 Web 应用程序 UI(chrome、firefox、IE 等浏览器 运行ning。
当我使用以下代码时(在我的本地机器和服务器上)
Process.Start(@"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe");
Process.Start(@"C:\Program Files (x86)\Mozilla Firefox\firefox.exe");
Process.Start(@"C:\Program Files\Internet Explorer\iexplore.exe");
在控制台应用程序中,这没有问题。这三个都可以正常启动。
class Program
{
static void Main(string[] args)
{
Process.Start(@"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe");
...
}
}
当我从控制器方法尝试这个时,这不起作用。
public class MyController : Controller
{
public ActionResult QuickStart()
{
Process.Start(@"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe");
...
}
}
如果我启动我自己的自定义可执行文件,它会 运行(我的测试可执行文件将文件写入磁盘)但它不会显示它应该显示的控制台。 )
根据我的发现,这是因为系统没有关于此 ui 必须显示给哪个用户的任何上下文?所以我尝试模拟每个可能的用户(不起作用,因为模拟与将当前会话作为登录用户不同?)并且我已经尝试为每个可能的 WindowsIdentity 启动该过程,但仍然没有发生。
有谁知道我可以做些什么来完成这项工作?
只要您的应用使用其他凭据,它就会创建一个新会话。要解决这个问题,您需要制作一个小型系统托盘类型的应用程序,以便您可以以某个帐户登录,然后 运行 这个应用程序会侦听来自您的服务的命令,然后在该会话中弹出您需要的任何内容到,并且用户可以看到中间应用程序 运行s as.