2011-07-28 15 views
45

मैं एएसपी.नेट एमवीसी 3 म्यूजिक स्टोर एप्लिकेशन ट्यूटोरियल का पालन कर रहा हूं लेकिन मैं भाग 4: http://www.asp.net/mvc/tutorials/mvc-music-store-part-4 में फंस रहा हूं। यह मुझे बता रहता है कि मैं एसक्यूएल डेटा प्रदाता स्थापित नहीं है:अनुरोधित नेट फ्रेमवर्क डेटा प्रदाता ढूंढने में असमर्थ। इसे शायद स्थापित न किया जा सके। - mvc3 asp.net ट्यूटोरियल का पालन करते समय

सटीक त्रुटि:

System.ArgumentException was unhandled by user code 
    Message=Unable to find the requested .Net Framework Data Provider. It may not be installed. 
    Source=System.Data 
    StackTrace: 
     at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) 
     at System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name) 
     at System.Data.Entity.Internal.LazyInternalConnection.Initialize() 
     at System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel() 
     at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() 
     at System.Data.Entity.Internal.InternalContext.Initialize() 
     at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) 
     at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() 
     at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator() 
     at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator() 
     at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) 
     at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) 
     at MusicApplication.Controllers.StoreController.Index() in C:\Users\Michelle\documents\visual studio 2010\Projects\MusicApplication\MusicApplication\Controllers\StoreController.cs:line 18 
     at lambda_method(Closure , ControllerBase , Object[]) 
     at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) 
     at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) 
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
     at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() 
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) 
    InnerException: 

मैं System.Data.SqlServerCe के संदर्भ में जोड़ लिया है - अब भी वही त्रुटि की है। किसी भी मार्गदर्शन की वास्तव में सराहना की जाएगी

+2

मैं वर्तनी की जाँच और यकीन है कि यह 'है System.Data.SqlServerCe.4.0' होगा। अगर आपने इसे इंस्टॉल नहीं किया है तो http://www.microsoft.com/download/en/details.aspx?id=17876 भी। – Buildstarted

+0

हाँ अपनी वर्तनी सही .. – michelle

+0

आप फिर से स्थापित करने का प्रयास किया है एसक्यूएल सर्वर सीई? मेरे पास अतीत में कई मुद्दे थे जहां एक मरम्मत भी काम नहीं करती थी। अनइंस्टॉल करें (यदि आप 64-बिट ओएस पर हैं तो 32 और 64-बिट संस्करण दोनों) और फिर इंस्टॉल करें। –

उत्तर

30

मैं NuGet का उपयोग कर विजुअल स्टूडियो 2010 में इसी तरह की समस्या को हल करने में सक्षम था।

टूल> लाइब्रेरी पैकेज प्रबंधक> समाधान के लिए NuGet संकुल प्रबंधित करें ...

संवाद में, "EntityFramework.SqlServerCompact" के लिए खोज। आपको विवरण के साथ एक पैकेज मिलेगा "SQL सर्वर कॉम्पैक्ट 4.0 को इकाई फ्रेमवर्क के साथ उपयोग करने की अनुमति देता है।" इस पैकेज को स्थापित करें।

एक निम्नलिखित के समान तत्व अपने web.config में सम्मिलित किया जाएगा:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework"> 
    <parameters> 
     <parameter value="System.Data.SqlServerCe.4.0" /> 
    </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 
+1

है कि मैं, वास्तव में क्या याद आ रही थी, हालांकि मैं ef.sqlservercompact पैकेज स्थापित किया था लेकिन यह मेरी web.config – andryuha

+0

कि सटीक प्रक्रिया मैं संगीत स्टोर ट्यूटोरियल के लिए संकलित करने के लिए मेरे समाधान प्राप्त करने के लिए पीछा किया है अद्यतन नहीं किया – Purusartha

16

मुझे एक ही समस्या थी। मैंने C: \ Windows \ असेंबली में System.Data.SqlServerCe के संस्करण की जांच की। यह 3.5.1.0 था। तो मैंने नीचे लिंक (x86) से संस्करण 4.0.0 स्थापित किया और ठीक काम करता है।

http://www.microsoft.com/download/en/details.aspx?id=17876

+1

भी जोड़ने की जरूरत हो सकती है ' <जोड़ने नाम =" Microsoft SQL सर्वर कॉम्पैक्ट डेटा प्रदाता 4.0 "अपरिवर्तनीय =" System.Data.SqlServerCe.4.0 "विवरण ="। Microsoft SQL सर्वर कॉम्पैक्ट के लिए नेट फ्रेमवर्क डेटा प्रदाता "type =" System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 89845dcd8080cc91 "/> ' 'के लिए मशीन .config'। http://forum.linqpad.net/discussion/371/entity-framework-oracle-unable-to-find-the-requested-net-framework-data-provider-it-may-not-be – mbrownnyc

+1

@mbrownnyc बहुत आलसी machine.config खोदने के लिए। Web.config पहले से ही खुला था और मैंने वहां कोड चिपकाया और यह काम किया! धन्यवाद। यह पता चला है, मेरे पास एकाधिक SqlCE संस्करण स्थापित हैं इसलिए मुझे किसी को स्थापित करने की आवश्यकता नहीं थी। – jokab

0

मेरे मामले में, इस मुद्दे SQL डेटाबेस के लिए एक कनेक्शन की समस्या की वजह से किया गया था। मैंने बस डिस्कनेक्ट किया और फिर डिज़ाइन व्यू से SQL डेटासोर्स को फिर से कनेक्ट किया। मैं बैक अप और दौड़ रहा हूँ। उम्मीद है कि यह हर किसी के लिए काम करता है।

0

मैं WCF सेवा पर SqlClient के साथ एक similer समस्या थी। मेरे समाधान डाल करने के लिए है कि ग्राहक में लाइनों app.config

<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> 
    </startup> 

उम्मीद यह किसी के लिए मदद करता है था ..

10

अपने web.config फ़ाइल में ये पंक्तियां जोड़ें:

<system.data> 
    <DbProviderFactories> 
       <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    </DbProviderFactories> 
</system.data> 

बदलें अपनी MySQL से SQL सर्वर या जो भी डेटाबेस प्रदाता आप कनेक्ट कर रहे हैं से प्रदाता।

0

यह मेरे साथ हुआ क्योंकि मैंने एक नई परियोजना बनाई जो सदस्यता के लिए System.Web.ProvidersDefaultMembershipProvider का उपयोग करने का प्रयास कर रहा था। मेरे डीबी और एप्लिकेशन को इसके बजाय System.Web.Security.SqlMembershipProvider का उपयोग करने के लिए स्थापित किया गया था। मुझे प्रदाता और कनेक्शन स्ट्रिंग को अद्यतन करना था (क्योंकि इस प्रदाता को कुछ अजीब कनेक्शन स्ट्रिंग आवश्यकताएं होती हैं) इसे काम करने के लिए।

0

मैं भाग 4 में एक ही MvcMusicStore ट्यूटोरियल निम्नलिखित जब था और इस के साथ दिए गए कनेक्शन स्ट्रिंग की जगह:।

जोड़ने नाम = "MusicStoreEntities" connectionstring = "डेटा स्रोत = \ SQLEXPRESS; एकीकृत सुरक्षा = SSPI; डेटाबेस = एमवीसी म्यूजिकस्टोर; उपयोगकर्ता आईडी = एस; पासवर्ड = " प्रदाता नाम =" सिस्टम। डेटा.क्लक्लिएंट "/>

यह मेरे लिए काम करता है।

1

यह त्रुटि मुख्य रूप से फ्रेमवर्क स्थापित Ei 86 x64 समाधान बनाम साथ प्रोसेसर आर्किटेक्चर असंगति के कारण है: > समाधान एक्सप्लोरर> परियोजना गुण टैब पर जाएं संकलित करें> उन्नत संकलित विकल्प वहाँ आप X64 से करने के लिए लक्ष्य सीपीयू को बदलने के लिए है X86 नई सेटिंग सहेजें और अपने समाधान को पुन: संकलित करें। मैंने कोशिश की और यह बहुत अच्छा काम किया। आशा है कि यह आपकी मदद करेगा। मालेक