2015-12-10 8 views
25

जब भी मैं डीबी में सहेजता हूं तो मेरा एप्लिकेशन निम्न त्रुटि से क्रैश हो जाता है।इकाई फ्रेमवर्क डेटाबेस अद्यतन नहीं कर सकता

DLL 'SqlServerSpatial110.dll' में 'SetClrFeatureSwitchMap' नामक एक प्रविष्टि बिंदु खोजने में असमर्थ।

यह त्रुटि कल विंडोज अपडेट और पीसी रीबूट के बाद शुरू हुई। प्रोजेक्ट में डीएलएल का संदर्भ नहीं दिया गया है और बिन फ़ोल्डर में नहीं है।

मैं ईएफ 5 का उपयोग करता हूं और मैं डीबी से कनेक्ट कर सकता हूं और डेटा खींच सकता हूं लेकिन जब मैं ऑब्जेक्ट कॉन्टेक्स्ट को कॉल करता हूं। सेव चेंज() त्रुटि होती है।

एप्लिकेशन ज्यामिति का उपयोग नहीं करता है, इसलिए मुझे नहीं पता कि यह कहां से आ रहा है।

+0

अब तक मैंने SQL 2008 R2 के लिए SP3 स्थापित किया है, SQL 2014 स्थापित किया है, SqlServerSpatial110.dll से संबंधित कुछ भी हटा दिया है। मैंने एक अलग पीसी पर कोड का परीक्षण किया और एक ही समस्या का अनुभव किया। –

उत्तर

55

मैं एक ही मुद्दा था, और अपने आवेदन की web.config को निम्नलिखित लाइनों को जोड़कर यह तय:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" /> 
     <bindingRedirect oldVersion="1.0.0.0-11.0.0.0" newVersion="10.0.0.0" /> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

यह EntityFramework को SqlServer.Types.dll के संस्करण 10 का उपयोग करने के लिए मजबूर करता है, जिसमें ज्यामिति प्रकार स्पष्ट रूप से नहीं है।

+1

यह वास्तविक उत्तर है, एक आकर्षण की तरह काम करता है! धन्यवाद – veljkoz

+0

मेरे लिए भी काम किया! पुराने ईएफ संस्करण का उपयोग करके मेरे ऐप के लिए एसपी 3 की स्थापना रद्द किए बिना शानदार जवाब। धन्यवाद! – SheldonH

+1

इसे तत्व में जोड़ा जाना चाहिए, और यह पूरी तरह से काम करता है। –

3

इसलिए, यदि मैं एप्लिकेशन की स्टार्ट-अप में कोड की निम्न पंक्ति जोड़ता हूं तो यह माइक्रोसॉफ्ट एसक्यूएल सर्वर का SQL 2014 संस्करण का उपयोग करेगा। टाइप असेंबली जो ऊपर बताई गई समस्या प्रतीत नहीं होती है।

System.Data.Entity.SqlServer.SqlProviderServices.SqlServerTypesAssemblyName = "Microsoft.SqlServer.Types, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"; 

यह उन मशीनों के लिए ठीक है जिनके पास SQL ​​Server 2014 SDK स्थापित है।

मैं भी माइक्रोसॉफ्ट यहाँ के साथ एक बग सबमिट की है:

https://connect.microsoft.com/SQLServer/Feedback/Details/2139143

0

इस त्रुटि के साथ मेरे अनुभव से, यह SQL सर्वर सर्विस पैक 3 के साथ SQL सर्वर का उपयोग करते समय केवल .NET 4 (.NET 4.5 के विपरीत) लक्ष्यीकरण इकाई फ्रेमवर्क 5 के साथ होता है। संभावित रूट कारण here पर अधिक जानकारी। समाधान है कि मेरे लिए काम किया: फ्रेमवर्क 6

+0

हमारे ऐप्स .NET 4.5 (EF 5 हालांकि) पर चल रहे हैं, और हमारे पास अभी भी यह समस्या है। चूंकि ईएफ नाजुक है, इसलिए हम नए संस्करण में अपडेट को जोखिम नहीं ले पाएंगे, इसलिए केडीओयर का जवाब जाने का तरीका है। – veljkoz

+0

धन्यवाद, veljkoz। मैंने उस सुझाव को हटा दिया है। – Sifford

0


1) KdBoer के ठीक, या
2) इकाई के लिए आवेदन अद्यतन मैं जानता हूँ कि मैं पार्टी के लिए देर से कर रहा हूँ, लेकिन मैं MSSQL 2012 और साथ ही समस्या था यह वास्तव में कष्टप्रद था। I स्पेसियल कॉलम (0) के साथ तालिकाओं में कोई भी क्वेरी चलाने में सक्षम नहीं था। यह थोड़ा मुश्किल था। मैं अपने दृष्टिकोण को सारांशित करता हूं, बस दूसरों के मामले में,

कारण एसपी 3 और सीएलआर के बीच कुछ inconsistency के कारण है। इसका सबसे अच्छा तरीका C:\Windows\assembly की जांच कर रहा है और यदि आप यहां कुछ Microsoft.SqlServer.Types देखते हैं तो आपको उन्हें फिर से निकालना और इंस्टॉल करना होगा।खैर उन्हें थोड़ी सूझबूझ से काम निकाल रहा है:

  1. संभवत: uninstall Windows अद्यतन से सभी एसक्यूएल सर्वर अद्यतन, मैं तो बस सेवा के लिए इस registery HKLM\SOFTWARE\Classes\Installer\Assemblies\Globalhere में इस स्थान के लिए पैक 1,2,3

  2. चली गई

  3. Delete all keys with the nameMicrosoft.SqlServer.Types, लेकिन इससे पहले एक रजिस्ट्री बैकअप नहीं ले गंदगी रजिस्ट्री करने के लिए सावधान रहें। प्रशासक के रूप में

  4. भागो Developer Command Prompt और run this commandgacutil -i Microsoft.SqlServer.Types

  5. मरम्मत आपके पास पहले से एसक्यूएल सर्वर के मूल संस्करण।

अंत में, मैं भी ज्योमेट्री (स्थानिक) डेटा के साथ किसी भी मेज पर किसी भी प्रश्न को निष्पादित करने में सक्षम था।

आशा है कि इससे कुछ लोगों की मदद मिलेगी।

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