2011-05-06 71 views
1

我的方案是如下(Win7的,VS2010,.NET 4.0):BadImageFormatException在WCF語境

我有來自外部公司編制了 「任何CPU」(與corflags.exe驗證).NET程序集。該程序集也從外部公司加載本機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和撰文指出,他通過corflagging WcfSvcHost.exe爲32BIT解決了類似的問題,但WcfSvcHost.exe是強命名,所以我不能辭職了。不知道他是如何工作的...

回答

1

您可以放棄對WcfSvcHost的依賴關係,並在本地IIS中主持/調試服務,您可以在其中明確地將AppPool設置爲32或64位。這就是我要做的。

+0

是的,這是一個解決方法,爲我做的伎倆,thx!有趣的是,雖然我不能得到這個與WcfSvcHost一起工作... – larsbeck 2011-05-07 17:58:49

+0

有人可以擺脫一些這方面的更多細節?我無法找到更改此AppPool設置的位置。在我的IIS管理器中,轉到高級設置,選擇DefaultAppPool選中的應用程序池。但其他三個選項是:Classic .NET AppPool,ASP.NET v4.0,ASP.NET v4.0 Classic。那麼哪一個意味着32或64? – newman 2011-11-29 02:21:59