在制作WCF Web服务时,我在使用带有webbrowser控件的方法时遇到了问题。该方法启动一个线程并使用webbrowser控件填写一些表单并进一步单击,等待事件处理程序触发并返回我需要的答案。该方法经过测试并在自己的环境中运行,但在WCF Web服务环境中使用,事件处理程序不会触发。结果是等待手动重新开始。这是因为新线程还是因为Web服务的错误事件处理?如果是,那么什么是合理的解决方案?
答案 0 :(得分:0)
Browser1 - > Web App - >网络服务 - >在其他网站上执行操作(新浏览器 - >打开网址 - >填写网址 - >按ok - >捕获响应 - >过程回答)
如果系统中创建“新浏览器”的部分作为服务运行,则作为Windows服务,自托管WCF服务进程或IIS内部的某些内容;那么你很可能不会得到GUI事件,因为没有GUI。除其他事项外,GUI事件处理程序需要Windows消息泵,这在这些情况下不可用。
尝试在Windows Forms主机下托管您的服务,看看,我怀疑它会起作用。
如果您的系统必须在IIS或Windows服务(非GUI)下,那么您始终可以与代理主机进程通信,该进程具有消息泵,可以为您执行所有浏览操作。完成后,您的“回答”可以发送回网络应用