通过COM包装器从HTA消费WCF服务

本文关键字:消费 WCF 服务 HTA COM 包装 通过 | 更新日期: 2023-09-27 18:08:53

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

基本总结—有一整套流程增强工具以HTA文件的形式与预订系统集成。

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

因此,我们已经构建了一个使用web服务引用的WCF类库。在对app.config进行了一些调整和微调之后,我们已经让它与web服务完美地通信(使用windows表单测试应用程序)

因此,为了能够通过HTA文件进行通信,我们编写了一个COM包装器,它公开了WCF库函数。

到目前为止一切顺利,但是当我们尝试运行HTA时,我们得到了臭名昭著的

"找不到名称为........的端点元素"

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

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

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

通过COM包装器从HTA消费WCF服务

首先,尝试编译所有以x86显式设置为目标的客户端. net项目(包括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.exe(它是C:'Windows'SysWOW64'mshta.exe,而不是x64 C:'Windows'System32'mshta.exe)来测试它。

我终于让它工作了!

感谢@Noseratio,他的建议迫使我重新检查所有内容!

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

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

干杯达伦