C# 通过COM包装器从HTA使用WCF服务
正在寻找有关如何从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服务调用正常工作 非常感谢您的建议。 干杯C# 通过COM包装器从HTA使用WCF服务,c#,web-services,wcf,com,hta,C#,Web Services,Wcf,Com,Hta,正在寻找有关如何从HTA文件使用WCF服务库的帮助 基本概述-有一整套流程增强工具,以HTA文件的形式与预订系统集成 我们需要让系统使用X509证书作为安全签名与web服务通信 因此,我们构建了一个WCF类库,它使用对web服务的服务引用。在对app.config进行了一些调整和微调之后,我们已经实现了与web服务的完美通信(使用windows窗体测试应用程序) 为了能够通过HTA文件进行通信,我们编写了一个COM包装器,它公开了WCF库函数 到目前为止还不错-但是当我们尝试运行HTA时,我们得
Darren首先,尝试编译所有显式设置为目标的客户端.NET项目(包括WCF类库和COM包装器) 然后使用x86
RegAsm.exe
注册COM包装器(它是C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe
,而不是x64C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe
)
最后,使用x86
mshta.exe
(即C:\Windows\SysWOW64\mshta.exe
,而不是x64C:\Windows\System32\mshta.exe
)对其进行测试 我终于让它工作了
多亏了@Noseratio,他的建议迫使我重新审视了一切
mshta.exe文件需要自己的app.config文件。我已经尝试从WCF DLL复制app.config文件,但在将其命名为mshta.config而不是mshta.exe.config时出现了学童错误
一旦命名正确,HTA文件就能够通过com包装器和WCF DLL与web服务通信
干杯
达伦谢谢你的帮助,但还是没有运气!所有东西都是以x86的形式构建的——因为我们必须与一些32位的古老API保持兼容!!尝试强制使用SysWOW64版本的mshta,但仍然没有成功:(@DarrenNavitas,很难猜出还有什么错误。您可能希望尝试将COM包装器设置为托管的进程外服务器,而不是进程内: