1

我的情况如下(Win7、VS2010、.NET 4.0):

我有一个外部公司为“任何 CPU”编译的 .NET 程序集(使用 corflags.exe 验证)。该程序集也从外部公司加载本机 dll。这个原生 dll 有两个版本 - x86 和 x64。我两个都有。

当我创建控制台应用程序时,添加 .NET 程序集(同时确保 .NET 程序集可以找到本机 DLL 之一),从该 .NET 库中创建一个类的实例并启动程序一切都是美好的。

但是,当我在 WCF 服务中执行完全相同的步骤时,我得到了 BadImageFormatException。现在显而易见的是在目标平台中搜索错误(我尝试了“Any CPU”、“x86”、“x64”)或尝试交换本机 DLL(我尝试了 x86 和 x64),但这无济于事. 顺便说一句,我尝试了所有组合...

有谁知道问题可能是什么?

拉斯

PS:我阅读了 WcfSvcHost 和 IIS WCF 主机遇到的 BadImageFormatException,正如作者所说,他通过将 WcfSvcHost.exe 标记为 32BIT 解决了类似的问题,但 WcfSvcHost.exe 的名称很强,所以我不能辞职。不知道他是如何让它工作的......

4

1 回答 1

1

您可以放弃对 WcfSvcHost 的依赖,并在本地 IIS 中托管/调试服务,您可以在其中将 AppPool 显式设置为 32 位或 64 位。这就是我要做的。

于 2011-05-07T08:56:57.960 回答