У меня есть служба WCF, написанная и работающая на моей машине для разработки. Это простой сервис, который берет свои параметры и помещает их в базу данных Oracle. Все аспекты были протестированы и работают на моей 32-битной машине разработки. Когда я компилирую и размещаю сервис на нашем 64-битном сервере разработки (под управлением IIS 6) для надлежащего тестирования, тестовый клиент получает эту ошибку:
Не удалось загрузить файл или сборку
«Oracle.DataAccess,
Версия = 2.111.7.20, Культура = нейтральная,
PublicKeyToken = 89b483f429c47342 'или
одна из его зависимостей.
Клиент вообще не использует Oracle.DataAccess.dll, это ошибка, возвращаемая службой. В VS2010 я установил, что ссылка не требует определенной версии. Однако, даже с этим набором, он говорит мне, какую именно версию он не может найти. Я пытался добавить 32-битную и 64-битную версию DLL в каталог bin службы по одному, но ни одна из них не устраняет проблему.
Если я правильно понимаю, он должен работать без какой-либо из этих DLL-файлов в папке bin, потому что GAC уже имеет правильную DLL-библиотеку из других проектов на сервере. Что я могу сделать, чтобы это исправить?
Подробнее:
Если я включаю 32-битную DLL в папку bin, я получаю эту ошибку:
Не удалось загрузить файл или сборку «Oracle.DataAccess» или одну из ее зависимостей. Предпринята попытка загрузить программу с неверным форматом.
Если я включаю 64-битную DLL в папку bin, я получаю эту ошибку:
Не удалось загрузить файл или сборку 'Oracle.DataAccess, версия = 2.111.7.20, Culture = нейтральный, PublicKeyToken = 89b483f429c47342' или одну из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)