كيفية ترجمة موقع الويب لاستخدام عميل Oracle 32 بت على Windows 64 بت

StackOverflow https://stackoverflow.com/questions/1707101

سؤال

لقد تلقيت هذا الخطأ بعد التحديث إلى Windows 7 64 بت وبعد تشغيل موقع .NET موجود.

InvalentOperationException: محاولة تحميل مكتبات Oracle Client ألقى BadImageFormateXception. ستحدث هذه المشكلة عند التشغيل في وضع 64 بت مع تثبيت مكونات عميل Oracle 32 بت.

لقد قمت فقط بتثبيت عميل Oracle 32 بت مثبتا وأنا أفهم أنه على جهاز تطوير 64 بت الخاص بي يتوقع التطبيق مكتبات 64 بت إلا إذا ذكر صراحة. هذا من البحث الذي قمت به حتى الآن.

لقد قرأت أنه يمكنني تغيير منصة الحلول إلى x86 مما سيعزز التطبيق لاستخدام 32 بت إذا كان هذا ما يجده. أرغب في القيام بذلك ولكن لا يوجد خيار X86 لموقع الويب في محلول Visual Studio.

لقد أنشأت تطبيق اختبار ولدي الخيار، لقد أنشأت موقع اختبار ولم يكن كذلك. كيف يمكنني ترجمة موقع الويب إلى X86 بحيث سيستخدم عميل Oracle 32 بت.

هتافات

هل كانت مفيدة؟

المحلول

في IIS Manager، قم بإنشاء تجمع تطبيقات وتعيين تجمع التطبيقات لتشغيله في وضع 32 بت. ثم قم بتعيين موقع الويب الخاص بك باستخدام عميل Oracle 32 بت لتشغيله في تجمع التطبيقات 32 بت.

نظرا لعملية العامل أن تبدأ IIS في تجمع التطبيقات هذا عملية 32 بت، عندما يحاول تحميل CLR، فستحميل CLR 32 بت وسيقوم بتحميل تجميعك في وضع 32 بت. هذا صحيح حتى لو تم تجميع تجميعك لأوضي 64 بت و 32 بت. يمكن تشغيل تجميعك في وضع 32 بت بعد ذلك استدعاء عميل Oracle يعمل في وضع 32 بت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top