08. juli 2009 - 22:06Der er
19 kommentarer og 1 løsning
MySql .NET Connector 6.0.4 og Entity Framework - IServiceProvider interface error
Hej, Jeg bruger MySql .NET Connector 6.0.4 og Entity Framework. På localhost virker det fint, men når jeg smider det ud på mit webhotel får jeg følgende fejl:
-----------------
The store provider factory type 'MySql.Data.MySqlClient.MySqlClientFactory' does not implement the IServiceProvider interface. Use a store provider that implements this interface. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.ProviderIncompatibleException: The store provider factory type 'MySql.Data.MySqlClient.MySqlClientFactory' does not implement the IServiceProvider interface. Use a store provider that implements this interface.
Nej, det ved jeg faktisk ikke, hvordan kan jeg være sikker på det?
Derudover har jeg jo først tilføjet MySql.Data.dll da du nævnte det, men det virkede fint uden på localhost? Jeg er ikke den skarpeste på området, så forklar endelig :) Men jheg har i bund og grund lavet et projekt som indeholder en Entity Data Model og den har så en forbindelse til min MySql db.. Da jeg så testede det på localhost virkede det hele fint, også uden en MySql.Data.dll, men den er måske gemt et sted?
Problemet er Entity Data Modellen, da jeg sagtens kan lave en web app. som henter tingene ud fra MySql dben via. den samme .NET connector.. så snart der kommer en .edmx fil ind i billedet, så laver den ovenstående fejl
Hvis du kunne hente data ud inden du smed den .dll op, saa betyder det at din web app har brugt en central kopi af MySql.Data.dll og naar den ikke understoetter det som virker paa din udviklings maskine, saa maa det vaer en aeldre version.
Tricket er at komme til at bruge den nyere version.
Du har ret i at jeg bruger en nyere version af dllen.. mit web hotel bruger 5.2.5.0, mens jeg bruger 6.0.4.0.. Men stadigvæk, hvordan fortæller jeg at den skal bruge den dll jeg smider med i projektet og ikke den centrale?
I bund og grund handler det nu om at fortælle min web app. at når jeg tilføjer MySQL.Data.dll i version 6.0.4.0, så er skal den bruge den der ligger i projektet og ikke den der ligger på serveren.. .edmx filen bruger denne conn string, men skal provideren pege på noget andet når det er den i projektet?
<system.data> <DbProviderFactories> <clear /> <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.0.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data>
Nu kommer den videre fra hvor den fejlede på interfacet.. Dog er der kommet et ny fejl:
[NullReferenceException: Object reference not set to an instance of an object.] MySql.Data.MySqlClient.MySqlClientFactory.get_MySqlDbProviderServicesInstance() +77
Det virker stadigvæk fint på localhost og jeg kan ikke se hvad det er MySQL .NET Connector 6 skal installere på min computer som gør at det virker uden problemer.. Hvis jeg fjerner Connectoren fra Tilføj/fjern fejler den på samme måde som på mit webhotel, også selvom jeg har alle de tilhørende .dll'er med i solutionen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.