2011-07-21 9 views
14

के मूल घटकों को लोड करने में असमर्थ मैंने Win7 x64 पर SQL सर्वर कॉम्पैक्ट संस्करण 4.0 स्थापित किया है और यह Asp.Net और डेस्कटॉप अनुप्रयोगों दोनों के लिए चलाता है। इस पीसी में विजुअल स्टूडियो 2010 एसपी 1 भी स्थापित है।SQL सर्वर कॉम्पैक्ट

Unable to load the native components of SQL Server Compact corresponding to the 
ADO.NET provider of version 8482. Install the correct version of SQL Server 
Compact. Refer to KB article 974247 for more details. 

मैं एक SQLDataSource और SqlCeConnection के साथ दोनों की कोशिश की है: लेकिन मेरे सर्वर 2008 R2 यह डेस्कटॉप एप्लिकेशन चला सकते हैं, हालांकि, Asp.Net अनुप्रयोगों के लिए त्रुटि निम्नलिखित पैदा करता है। वही त्रुटि मेरे web.config नीचे की तरह है:

<?xml version="1.0"?> 
<configuration> 
    <connectionStrings> 
     <add name="SQLCE" connectionString="Data Source=|DataDirectory|\a.sdf" 
     providerName="System.Data.SqlServerCe.4.0" /> 
    </connectionStrings> 
    <system.web> 
     <compilation debug="true" targetFramework="4.0"> 
      <assemblies> 
       <add assembly="System.Data.SqlServerCe, Version=4.0.0.0, 
       Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> 
      </assemblies> 
     </compilation> 
    </system.web> 
</configuration> 

के रूप में भी sugested here लेकिन कोई प्रभाव नहीं dll के नकल करने की कोशिश की।

उत्तर

10

अंत में एसक्यूएल सर्वर कॉम्पैक्ट संस्करण 4.0 मिला आईआईएस 7.5 के तहत काम कर। समस्या अनुमति मुद्दा था। वर्तमान आवेदन पूल की पहचान IWAM_plesk (डिफ़ॉल्ट) एसक्यूएल सर्वर कॉम्पैक्ट करने के लिए उपयोग नहीं किया 4.0 फ़ोल्डरों:

C: \ Program Files \ Microsoft SQL सर्वर कॉम्पैक्ट संस्करण \ v4.0

सी: \ Program Files (x86) \ Microsoft SQL सर्वर कॉम्पैक्ट संस्करण \ v4.0

मैं सिर्फ पढ़ें & निष्पादित और दी गई सूची फ़ोल्डर सामग्री अनुमतियों और अब यह एक आकर्षण की तरह काम करता है।

1

क्या आपके पास सर्वर एसक्यूएल सीई 4.0 का बीटा संस्करण स्थापित है? संस्करण जानकारी के लिए प्रोग्राम जोड़ें/निकालें देखें।

+0

नहीं, बस इन: कॉम्पैक्ट 4.0 x64 ENU, कॉम्पैक्ट 4.0 x64 वेब टूल्स एनएनयू, कॉम्पैक्ट 3.5 एसपी 2 एनएनयू, कॉम्पैक्ट 3.5 एसपी 2 क्वेरी टूल्स एनएनयू, कॉम्पैक्ट 3.5 एसपी 2 एक्स 64 एनयूयू। –

+0

हाँ लेकिन कौन सा संस्करण (समर्थन बटन पर क्लिक करें) – ErikEJ

2

Microsoft Knowledge Base यहाँ http://support.microsoft.com/kb/974247/en-us कहना है कि यह:

किसी नियत समय बिंदु पर, एक 64-बिट कंप्यूटर, एसक्यूएल सर्वर कॉम्पैक्ट के लिए की सही स्थिति, निम्नलिखित होगा: x86 और amd64 दोनों एमएसआई स्थापित हैं। X86 और amd64 MSI दोनों एक ही संस्करण के हैं।

इसलिए, यदि आप किसी भी इसी तरह के मुद्दों का सामना करना, यह सुनिश्चित करें कि कंप्यूटर दोनों x86 और कॉम्पैक्ट के amd64 MSIs है स्थापित कर रहे हैं बनाने के लिए और वे एक ही संस्करण के हैं। मामले में, वे नहीं, तो नीचे दिए गए लिंक से कॉम्पैक्ट SP2 86 और 64 MSIs स्थापित रूप में की जरूरत हैं: http://www.microsoft.com/downloads/details.aspx?familyid=E497988A-C93A-404C-B161-3A0B323DCE24&displaylang=en

+3

उन फ़ाइलों को NuGet-package SqlServerCompact.4.0.8482.1 के साथ शामिल किया गया है। नेटिवबिनेरी-फ़ोल्डर में फ़ोल्डर x86 और amd64 को उसी फ़ोल्डर में System.Data.SqlServerCe.dll की आवश्यकता होती है। – Grastveit

+0

@Grastveit धन्यवाद, जो एक xcopy तैनाती के साथ पूरी तरह से काम किया। –

2

मुझे एक पूरी तरह से असंबंधित समस्या मिली जो इस त्रुटि संदेश का कारण बनती है, इसलिए मैं यहां Google से यहां आने वाले किसी भी व्यक्ति के लिए एक लिंक पोस्ट कर रहा हूं। इसने कल रात के लगभग तीन या चार घंटे खाए, और मुझे अंततः डिकंपील्ड एसक्लसेरसे बाइनरी के माध्यम से कदम उठाना पड़ा, इसलिए उम्मीद है कि यह आपकी मदद करेगा: Certain symbols in application path prevent SQL Server Compact from loading

3

ASP.net में SQL सर्वर CE 4.0 को तैनात करने के दो तरीके हैं।

  1. मध्यम विश्वास, या

  2. निजी तैनाती।

आपकी कॉन्फ़िगरेशन फ़ाइल संस्करण 4.0.0 का उपयोग करती है।0 -

<add assembly="System.Data.SqlServerCe, Version=4.0.0.0, 
      Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> 
इस

मध्यम ट्रस्ट की आवश्यकता है, और अनुप्रयोग पूल उपयोगकर्ता होने C:\Program Files\Microsoft SQL Server Compact Edition में सर्वर कॉम्पैक्ट COM DLLs एसक्यूएल तक पहुँचने की अनुमति की आवश्यकता है।

जहां मध्यम विश्वास विफल रहता है, तो आप निजी परिनियोजन का प्रयास कर सकते हैं। यह मेरी वरीयता है और भविष्य में कभी-कभी आपके सिस्टम के साथ कुछ गलत होने का मौका मिलता है।

आप निजी एसक्यूएल सर्वर सीई DLLs, bin\ को v4.0\Private में सभी फ़ाइलों को कॉपी करके लागू करते हैं, सुनिश्चित करें कि आपके Web.config संस्करण 4.0.0.1 पर निर्भरता की घोषणा कर सकते हैं। यह संस्करण जीएसी में तैनात नहीं है और यह सुनिश्चित करेगा कि आपकी निजी प्रति लोड हो जाए।

<system.web> 
<compilation> 
    <assemblies> 
    <add assembly="System.Data.SqlServerCe, Version=4.0.0.1, 
      Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> 
    </assemblies> 
</compilation> 
</system.web> 

तुम भी Web.config

<system.data> 
    <DbProviderFactories> 
     <remove invariant="System.Data.SqlServerCe.4.0" /> 
     <!-- Use private copy 4.0.0.1 --> 
     <add invariant="System.Data.SqlServerCe.4.0" 
      name="Microsoft SQL Server Compact 4.0" 
      description=".NET Framework Data Provider for Microsoft SQL Server Compact" 
      type="System.Data.SqlServerCe.SqlCeProviderFactory, 
        System.Data.SqlServerCe, 
        Version=4.0.0.1, 
        Culture=neutral, 
        PublicKeyToken=89845dcd8080cc91" /> 
    </DbProviderFactories> 
</system.data> 
0

में DbProvider खंड में एक इसी परिवर्तन की आवश्यकता होगी मैं सिर्फ 4.0 एसक्यूएल सीई 3.5 से अपग्रेड, Microsoft से एक नया संस्करण को डाउनलोड करके। ऐसा करने के बाद, मुझे त्रुटि संदेश मिला जो मुझे यहां लाया। मेरे लिए समाधान NuGet पैकेज प्रबंधक का उपयोग करके, EntityFramework के लिए SQL CE 4.0 को भी स्थापित करना था। तो केवल वेबसाइट से द्विआधारी स्थापित करने के लिए मेरे लिए चाल नहीं है!

+0

आप मेरे धन्यवाद के लायक हैं! –

0

मैं एक ही त्रुटि मैं कोशिश पकड़ने इनबिल्ट वस्तुओं का इस्तेमाल किया और समस्या का समाधान कर लिया

'एसक्यूएल सर्वर कॉम्पैक्ट के मूल घटक लोड करने में असमर्थ' था। एसडीएफ फाइल जो मैंने खोलने की कोशिश की थी वह पासवर्ड था।

संबंधित मुद्दे