通过COM Wrapper从HTA使用WCF服务

时间:2014-06-16 15:27:48

标签: c# web-services wcf com hta

寻找有关如何从HTA文件中使用WCF服务库的帮助。

基本摘要 - 有一整套流程增强工具,可以以HTA文件的形式与预订系统集成。

我们需要让系统使用X509证书作为安全签名与Web服务进行通信。

因此,我们构建了一个WCF类库,该库使用对Web服务的服务引用。在对app.config进行一些调整和微调之后 - 我们完全可以与Web服务进行通信(使用Windows窗体测试应用程序)

因此,为了实现与HTA文件的通信,我们编写了一个COM包装器,它公开了WCF库函数。

到目前为止一直很好 - 但是当我们尝试运行HTA时,我们得到了臭名昭着的

  

'无法找到名称为........'

的端点元素

我尝试过各种各样的事情来解决这个问题: 确保所有dll文件和hta文件位于同一目录中。 我已经从WCF dll复制了app.config,并将其内容添加到COM包装器上的app.config文件中。 我甚至尝试将配置文件添加到System32目录中的MSHTA.exe文件!!

到目前为止,没有任何帮助并允许HTA文件使WCF服务调用起作用。

任何建议都非常感谢。 干杯 达伦

2 个答案:

答案 0 :(得分:1)

首先,尝试编译所有客户端.NET项目,并将x86显式设置为目标(包括WCF类库和COM包装器)。

然后使用x86 RegAsm.exe注册您的COM包装器(C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe,而不是x64 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe)。

最后,使用x86 mshta.exeC:\Windows\SysWOW64\mshta.exe,而不是x64 C:\Windows\System32\mshta.exe)来测试它。

答案 1 :(得分:0)

最后我得到了它的工作!

感谢@Noseratio,他的建议迫使我重新审视一切!

mshta.exe文件需要它自己的app.config文件。我已经尝试从WCF DLL复制app.config文件,但在将其命名为mshta.config而不是mshta.exe.config时发生了小学生错误。

一旦正确命名,HTA文件就能通过com包装器和WCF DLL与Web服务进行通信。

干杯 达伦