我们有一个使用Watin
和HttpWatch
的应用程序来检查一些生产网站。
我们会定期检查应用程序的响应时间,我们会使用此应用程序。
我们打开一个IE实例,在设置了一些配置之后,用HttpWatch
插件附加了这个实例。
该应用程序在Windows Server 2003中运行良好。
但是,当我们在Windows Server 2008中执行此应用程序时,会出现以下错误。
无法将“HttpWatch.ControllerClass”类型的COM对象强制转换为接口类型“HttpWatch.IController”。此操作失败,因为对于具有IID“{21828BF3-DA77-4FC1-968E-FC7A46AEC19A}”的接口的COM组件上的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE))
我们尝试了很多但却无法解决这个问题。此外,我们已将Interop.HttpWatch.dll
和Interop.SHDocVw.dll
的最新DLL用于所需的Windows Server 2008版本,我们通过链接了解它。
答案 0 :(得分:0)
检查这是否是由于2003年的错误 - > 2008年过渡或32位 - > 64位。
我有与COM类似的错误 - 在某些情况下必须将编译更改为32位。
答案 1 :(得分:0)
我终于解决了这个问题。
发生的问题如下:
该项目是为目标版本 - 任何CPU
而构建的该项目使用了Watin的InternetExplorer类,我们机器的IE是目标版本x86,而我的机器是x64。 (Windows Server 2008 R2)
因此,当应用程序尝试将x64特定工作进程附加到x86 IE实例时,它会出现上述错误。
我为x86平台重建了项目,现在应用程序运行正常。
如果您遇到同样的问题,请尝试这样做。 如果它有帮助,请告诉我!
此致
Varun Shringarpure