2012-10-09 15 views
5

को ढूंढने या लोड करने में विफल मुझे निम्न त्रुटि मिली: "पंजीकृत .NET Framework डेटा प्रदाता को ढूंढने या लोड करने में विफल।" यह केवल, AppHarbor सर्वर में घटित नहीं अपने स्थानीयपंजीकृत .NET Framework डेटा प्रदाता

मैं नेट mvc4 और mysql का उपयोग

मैं संदर्भ और कॉपी स्थानीय = true सेट करने के लिए MySql.Data, MySql.Data.Entity, MySql.Web जोड़ लिया है।

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/> 
    </configSections> 
    <system.data> 
    <DbProviderFactories> 
     <remove invariant="MySql.Data.MySqlClient"/> 
     <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.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> 
    </DbProviderFactories> 
    </system.data> 
    <connectionStrings> 
    <add name="fmcdatabaseEntities" connectionString="metadata=res://*/Models.FMCEntityDataModel.csdl|res://*/Models.FMCEntityDataModel.ssdl|res://*/Models.FMCEntityDataModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=****;uid=****;port=3306;database=****&quot;" providerName="System.Data.EntityClient"/> 
    </connectionStrings> 
    <appSettings> 
    <add key="webpages:Version" value="2.0.0.0"/> 
    <add key="webpages:Enabled" value="false"/> 
    <add key="PreserveLoginUrl" value="true"/> 
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
    <add key="enableSimpleMembership" value="false"/> 
    <add key="autoFormsAuthentication" value="false"/> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5"> 
     <assemblies> 
     <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     </assemblies> 
    </compilation> 
    <httpRuntime targetFramework="4.5" /> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login" timeout="2880"/> 
    </authentication> 
    <membership defaultProvider="CustomMembershipProvider"> 
     <providers> 
     <clear/> 
     <add name="CustomMembershipProvider" type="FindMyCrushServer.Controllers.ControllerHelpers.CustomMembershipProvider" connectionStringName="fmcdatabaseEntities" applicationName="FindMyCrushServer" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Clear"/> 
     </providers> 
    </membership> 
    <roleManager defaultProvider="CustomRoleProvider" enabled="true" cacheRolesInCookie="false"> 
     <providers> 
     <clear/> 
     <add name="CustomRoleProvider" type="FindMyCrushServer.Controllers.ControllerHelpers.CustomRoleProvider"/> 
     </providers> 
    </roleManager> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers"/> 
     <add namespace="System.Web.Mvc"/> 
     <add namespace="System.Web.Mvc.Ajax"/> 
     <add namespace="System.Web.Mvc.Html"/> 
     <add namespace="System.Web.Optimization"/> 
     <add namespace="System.Web.Routing"/> 
     <add namespace="System.Web.WebPages"/> 
     </namespaces> 
    </pages> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/> 
    </entityFramework> 
</configuration> 

किसी भी मदद वास्तव में बहुत सराहना की है: मैं भी AppHarbor

को बिन फ़ोल्डर धक्का यह मेरा web.config है। अग्रिम धन्यवाद

उत्तर

12

क्या आपने NuGet पैकेज का उपयोग करने का प्रयास किया है?

... वे यह सुनिश्चित करें कि सही बिट्स जाना वे जहां आवश्यक हैं बनाना चाहिए। आप AppHarbor में पैकेज सामग्री को धक्का देने से बचने के लिए NuGet package restore का उपयोग कर सकते हैं।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। मैं कोशिश करूँगा – Dranix

+0

आप जीवन बचतकर्ता हैं। – Dranix

+1

लेकिन आप "उत्तर" प्रदान नहीं करते हैं। यह क्यों काम करता है? क्या यह समाधान उत्पादन सर्वर पर काम करेगा? – SandRock

4

मैंने देखा कि मेरे मामले में इस अपवाद का कारण डीएल और कॉन्फ़िगरेशन एंट्री के बीच भिन्न संस्करण थे।

तो, कभी-कभी आपके पास वास्तव में डीएल (या तो nuget या अन्य तरीके से स्थापित) app.config के नोड में प्रविष्टि से अलग होता है। यह खंड, अगर app.config में नहीं है, यह भी

Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config and nearby folders.

अंतर्गत पाया जा सकता dll के संस्करण के लिए प्रवेश में संस्करण बदलने समस्या हल हो जाती।

0

धन्यवाद, मुझे लगता है कि web.config में db प्रदाता कारखानों ठीक

<system.data> 
    <DbProviderFactories> 
     <remove invariant="MySql.Data.MySqlClient" /> 
     <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.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
</system.data> 
+0

और स्पष्ट रूप से आपकी कनेक्शन स्ट्रिंग में प्रदाता नाम = "MySql.Data.MySqlClient" शामिल होना आवश्यक है –

1

मेरे लिए है, मेरे nuget does not को अपने प्रोजेक्ट/bin में आवश्यक DLLs जोड़ें। तो संकुल फ़ोल्डर से बिन फ़ोल्डर में सभी अनुपलब्ध DLL चिपकाने की प्रतिलिपि इस समस्या को हल करती है।