我的场景如下(Win7,VS2010,.NET 4.0):
我有一个来自外部公司的.NET程序集,为“任何CPU”编译(使用corflags.exe验证)。此程序集也从外部公司加载本机dll。这个本机dll有两个版本 - x86和x64。我都有。
当我创建一个控制台应用程序时,添加.NET程序集(同时确保.NET程序集可以找到其中一个本机DLL),从该.NET库创建一个类的实例并启动程序一切都很好。
但是,当我在WCF服务中遵循完全相同的步骤时,我收到BadImageFormatException。现在显而易见的是在目标平台中搜索错误(我试过“任何CPU”,“x86”,“x64”)或尝试交换本机DLL(我尝试了x86和x64),但这没有帮助。我试过所有组合btw ......
有谁知道问题可能是什么?
拉斯
P.S。:我读了BadImageFormatException encountered with WcfSvcHost and IIS WCF host并且作者声明他通过将WcfSvcHost.exe作为32BIT来解决类似的问题,但是WcfSvcHost.exe是强名称所以我无法重新签名。不确定他是如何让它工作的......
答案 0 :(得分:1)
您可以删除对WcfSvcHost的依赖关系,并在本地IIS中托管/调试服务,您可以在其中将AppPool显式设置为32位或64位。那就是我要做的。