[C#] لم يتم تسجيل موفر 'Microsoft.ACE.OLEDB.12.0' على الجهاز المحلي


Answers

يتوفر إصدار 64 بت من "Microsoft Access Database Engine 2010 Redistributable" الذي يسمح لك باستخدام موفر 'Microsoft.ACE.OLEDB.12.0' هنا:
http://www.microsoft.com/en-us/download/details.aspx?id=13255

إذا كنت تستخدم التنزيل من الإجابة المقبولة ، فستحتاج إلى إنشاء الإصدار x86 ، كما هو موضح بواسطة @ backtestbroker.com.

Question

أحاول الحصول على بيانات من ملف Excel على حدث نقر زر. سلسلة الاتصال الخاصة بي هي:

 string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\source\\SiteCore65\\Individual-Data.xls;Extended Properties=Excel 8.0;";

عندما أنقر على الزر ، حصلت على الخطأ التالي:

لم يتم تسجيل موفر 'Microsoft.ACE.OLEDB.12.0' على الجهاز المحلي.

ليس لدي أي فكرة عن كيفية إصلاح هذا. نظام التشغيل الخاص بي هو Windows 7.




اتبعت التعليمات التي حددها الآخرون ؛ تثبيت هذا التصحيح تثبيت هذا التصحيح بالإضافة إلى Microsoft Access Database Engine 2010.

كانت مشكلتي أنني أستخدم نفس المكتبة (linq2sql) في موقعين على الجهاز الخاص بي؛ 1 أعمال و 1 لا.

في نهاية المطاف وجدت أنني اضطررت إلى "تمكين تطبيقات 32 بت" في الإعدادات المتقدمة من apppool لموقعي غير العاملة.

كل شيء يعمل بشكل جيد الآن.




كان Microsoft Access Database Engine 2010 Redistributable مثبتًا بالفعل على الجهاز الخاص بي ولكنه كان لا يزال يتلقى خطأ Microsoft ACE OLEDB Provider .

ثم تذكرت أنني قمت بالترقية إلى Office 2016 مؤخرًا ، لذلك ، قد أقوم بمحاولة إعادة تثبيت Microsoft Access Database Engine 2010 Redistributable . والتي حل المشكلة على جهازي.

لذلك ، إذا قمت بالترقية إلى إصدار مختلف من MS Office أو حتى إصلاح / إعادة تثبيت MS Office الخاص بك ثم حاول إعادة تثبيت Microsoft Access Database Engine 2010 Redistributable قبل إهدار الوقت مع العثور على إصلاحات أخرى. حظا طيبا وفقك الله!




حصلت على هذا الخطأ / الاستثناء في Visual Studio 2010 عندما قمت بتغيير بنائي في مربع الحوار إدارة التكوين من "x86" إلى "أي وحدة المعالجة المركزية". هذا برنامج تشغيل قاعدة البيانات OLEDB أنا أفهم يعمل فقط في x86 وليس 64bit متوافق. تغيير تكوين البنية مرة أخرى إلى x86 حل المشكلة بالنسبة لي.







تلقيت هذا الخطأ عند استيراد البيانات من ملف Excel إلى MS-SQL. تم بالفعل تثبيت الموفر (64 بت) وهذا أدهشني لماذا لم ينجح. لذلك كل ما فعلته هو تحديد موقع تطبيق الاستيراد / التصدير المستخدم هنا بمعنى .EXE. ووجدته في

C: \ Program Files \ Microsoft SQL Server \ 130 \ DTS \ Binn \ DTSWizard.exe

ثم قمت بتشغيل .exe مباشرة لتنفيذ استيراد البيانات. وانها عملت!







إذا كان لا يزال لا يساعد "تثبيت AccessDatabaseEngine" ، أدناه هو الحل:

تحتاج إلى تغيير النظام الأساسي للحلول النشطة من "أي وحدة المعالجة المركزية" إلى "x86".

موفر OLEDB غير مسجل على الجهاز المحلي

من CodeProject.com




إذا كنت تقوم بتصحيح مشروع ويب ، فقط تأكد من تشغيل IIS Express إما في 32 أو 64 بت بناءً على إعدادات مشروعك.

اذهب إلى

أدوات> خيارات> مشاريع وحلول> مشاريع الويب

ومن هناك تحقق (أو إلغاء تحديد) "استخدام الإصدار 64 بت من IIS Express ..."




لقد قمت بتثبيت برامج تشغيل MS ولا تزال لا تعمل بالنسبة لي. ثم عثرت على مشاركة المدونة هذه التي تحل المشكلة. اقرأها هنا ، استخدم الصورتين التاليتين (مرتبطتين من ذلك المنشور) باسم sumamary TLDR:




تحقق أولاً من تثبيت إصدار microsoft.ace.oledb.12.0 في نظامك.

تحقق في المسار أدناه C: \ Program Files \ Common Files \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL - تم تثبيت 64 بت

تحقق في المسار أدناه C: \ Program Files (x86) \ الملفات المشتركة \ Microsoft المشتركة \ OFFICE14 \ ACEOLEDB.DLL - تم تثبيت بت xx

إذا تم تثبيت (x86) ، فقم باستخدام النظام الأساسي لتغير مدير التهيئة إلى x86 ، ولتبديل x64 إلى x64.

إذا لم يكن متوفرًا ، فيُمكنك التثبيت باستخدام الرابط أدناه

https://www.microsoft.com/en-us/download/details.aspx؟id=23734




إذا حصلت على هذا الخطأ عند محاولة استخدام ACE من تطبيق ASP.NET ، فإن السبب الأكثر احتمالاً هو أنك قمت بتثبيت أحد إصدارات 32 بت. بشكل افتراضي ، سيقوم IIS على نظام تشغيل 64 بت بتشغيل التطبيقات في عملية عامل 64 بت. لا يمكن عمليات 64-بت تحميل DLL 32-بت. عند إجراء مكالمة إلى موفر ACE ، ستحاول عملية 64 بت تحديد موقع ملف DLL ذي 64 بت. إذا لم يكن موجودًا ، فستتلقى رسالة الخطأ التي جلبت لك هنا.

في هذه الحالة لديك خياران. أولاً ، يمكنك تثبيت إصدار 64 بت 2010. إذا قمت بتثبيت الإصدار 32 بت من الإصدار 2007 ، فيمكنك ببساطة تثبيت إصدار 64 بت 2010 إلى جانبه. إذا كنت قد قمت بتثبيت الإصدار 32 بت من 2010 ، فستحتاج إلى إلغاء تثبيته وتنزيل وتثبيت إصدار 64 بت 2010 بدلاً منه. لا يمكن تثبيت الإصدارين 32 و 64 بت من موفر 2010 في نفس الوقت. إذا كنت تقوم بالتثبيت على جهاز التطوير الخاص بك ، فقد تكون مقيدًا أيضًا بتثبيت أي تثبيتات Office موجودة.

الخيار الثاني هو تغيير تجمع التطبيقات في IIS لتمكين تطبيقات 32 بت. إذا كنت تستخدم الإصدار الكامل من IIS ، فيمكنك استخدام أداة الإدارة للقيام بذلك (لوحة التحكم »الأدوات الإدارية» إدارة خدمات معلومات الإنترنت (IIS)).

لمزيد من الفهم يرجى الرجوع إلى link أدناه




يمكن أيضا أن تجرب هذه الخطوات

في SQL Server ، 1. افتح قاعدة بيانات واحدة 2.Clic في الخيار 'Server Obtect' 3.Clic في 'Servers Servers' 4.Clic in 'Providers' 5.Clic Rigth in 'Microsoft.ACE.OLEDB.12.0' 6. قم بإلغاء تحديد جميع الخيارات وإغلاقها




تذكر لتثبيت AccessDatabaseEngine على الخادم لتطبيق الويب.