我试图使用网络应用程序运行UI(Chrome,firefox,IE等浏览器)。
当我使用以下代码时(在我的本地计算机和服务器上)
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");
...
}
}
当我从控制器方法尝试此操作时,这不起作用。
public function __construct($idCategory = null, $idLang = null, $idShop = null)
{
$definition = self::$definition;
$definition['fields']['show_products'] = array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true);
$definition['fields']['andrana'] = array(
'type' => self::TYPE_HTML,
'lang' => true,
'validate' => 'isCleanHtml'
);
parent::__construct($idCategory, $idLang, $idShop);
}
如果我启动自己的自定义可执行文件,它会运行(我的测试可执行文件将文件写入磁盘),但它没有向控制台显示它应该执行的操作。 )
从我发现的情况来看,这是因为系统没有任何关于这个ui必须显示的用户的上下文?所以我尝试模仿每个可能的用户(没有工作,因为冒充并不像以登录用户身份获取当前会话一样?)并且我已经尝试为每个可能的WindowsIdentity启动该过程但仍然没有发生。
有谁知道我能做些什么来使这项工作?
答案 0 :(得分:1)
每当您的应用使用其他凭据时,它都会创建一个新会话。为了解决这个问题,您需要制作一个小型系统托盘类型的应用程序,这样您就可以登录某个帐户并运行此应用程序,该应用程序会侦听来自您服务的命令,然后弹出该会话,无论您需要它,还是它对于中间应用运行的用户,将显示。