你可以在WCF服务下运行WebBrowser吗?

时间:2012-03-09 17:32:27

标签: c# wcf browser

我目前正在尝试将屏幕抓取程序(c#表单应用程序)转移到WCF服务。

屏幕抓取程序使用 WebBrowser 从几个没有API的页面中获取信息。我想知道你是否可以在服务中运行 WebBrowser ,更不用说表单了。我目前正在开发XP以在Server 2003上发布。

目前在运行单元测试时,我只能看到 WebBrowser ,如果它是在“单元测试”一侧制作的,那么我需要手动弹出 MessageBox 要让 WebBrowser 停止使用空白屏幕进行导航。

由于我们遇到多线程问题,该程序正在被移动和拆分。

2 个答案:

答案 0 :(得分:6)

最好使用像Phantom.js这样的无头浏览器:http://www.phantomjs.org/。它提供了重要的功能,并且无需像常规命令行程序那样在任何需要的地方执行。

答案 1 :(得分:1)

在考虑这一点时,要意识到WebBrowser控件的每个实例实际上都是Internet Explorer的一个实例。然后,您的问题就变成了一个服务启动Internet Explorer的多个实例。

但Internet Explorer是一个交互式应用程序。它希望在具有焦点时控制键盘和鼠标。

  • 在服务器中运行时,您希望它控制哪种键盘和鼠标?
  • 您的服务器有多少个键盘和鼠标?

您可以找到一些方法让服务启动远程桌面连接并启动Windows窗体应用程序。然后,您可以让Windows窗体应用程序托管WCF服务,这两个服务可以相互通信。当有必要自动化一个无法用作服务的专业交互式程序时,我已经看到了这种事情。

相关问题