BadImageFormatException в контексте WCF - PullRequest
1 голос
/ 06 мая 2011

Мой сценарий следующий (Win7, VS2010, .NET 4.0):

У меня есть сборка .NET от сторонней компании, скомпилированная для «Любого процессора» (проверено с помощью corflags.exe). Эта сборка загружает родную dll также из сторонней компании. Этот родной dll существует в двух версиях - x86 и x64. У меня есть оба в наличии.

Когда я создаю консольное приложение, добавьте сборку .NET (убедившись, что сборка .NET может найти одну из собственных DLL), создайте экземпляр одного из классов из этой библиотеки .NET и запустите программа все хорошо.

Однако, когда я выполняю те же самые шаги в службе WCF, я получаю исключение BadImageFormatException. Теперь очевидная вещь - поиск ошибки в целевой платформе (я пробовал «Любой ЦП», «x86», «x64») или попытка обменять нативную DLL (я пробовал и x86, и x64), но это не помогает , Я перепробовал все комбинации, кстати ...

Кто-нибудь знает, в чем может быть проблема?

Lars

PS: я прочитал BadImageFormatException, с которым столкнулись WcfSvcHost и хост IIS WCF , и, как утверждает автор, он решил аналогичную проблему, поставив WcfSvcHost.exe под код 32BIT, но WcfSvcHost.exe назван так, что я могу уйти в отставку. Не уверен, как он заставил его работать ...

1 Ответ

1 голос
/ 07 мая 2011

Вы можете удалить зависимость от WcfSvcHost и разместить / отладить службу в локальном IIS, где вы можете явно установить AppPool на 32 или 64 бита. Вот что я сделаю.

...