寻找有关如何从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服务调用起作用。
任何建议都非常感谢。 干杯 达伦
答案 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.exe
(C:\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服务进行通信。
干杯 达伦