Impossible de trouver la demande .Net Framework Fournisseur De Données
Im en utilisant Visual Studio 2010 Ultimate, le Projet c# MVC3 Rasoir
J'ai un projet qui est en cours d'exécution sans problème sur l'ordinateur local à l'aide de la base de données MySql (en ligne à partir du serveur de base de données, mais quand je le télécharge et quand il arrive à la partie où les besoins pour obtenir des données à partir du serveur MySql, il me donne cette erreur:
Incapable de trouver la demande .Net Framework Fournisseur De Données. Il ne peut pas
être installé.
C'est ma chaîne de connexion à partir du Web.config de MySql qui comme ceci fonctionne très bien lorsque je debug projet localement. Lit les informations à partir des tables et des spectacles sur la page.
<add name="istakipDBContext"
connectionString="Server=xxx.xxx.xxx.xxx; Database=xxx; Uid=xxx;
Pwd=xxx;" providerName="MySql.Data.MySqlClient" />
Et c'est l'ensemble de la trace de la pile:
Erreur de serveur dans l'Application'/'. Impossible de trouver la demande .Net
Cadre De Fournisseur De Données. Il ne peut pas être installé. Description: Une
exception non gérée s'est produite pendant l'exécution de votre site web actuel
demande. Veuillez consulter la trace de la pile pour plus d'informations sur la
d'erreur et d'où il vient dans le code.Détails De L'Exception: System.ArgumentException: Impossible de trouver le
demandé .Net Framework Fournisseur De Données. Il ne peut pas être installé.Source De L'Erreur:
Une exception non gérée s'est produite lors de l'exécution de la
demande web actuelle. Informations concernant l'origine et l'emplacement de
l'exception peut être identifié à l'aide de la trace de pile d'exception ci-dessous.Trace De La Pile:
[ArgumentException: Impossible de trouver le demande .Net Framework De Données
Fournisseur de. Il ne peut pas être installé.]
Système.Les données.Commun.DbProviderFactories.GetFactory(String
providerInvariantName) +1420503
Système.Les données.De l'entité.Interne.LazyInternalConnection.TryInitializeFromAppConfig(String
nom) +393
Système.Les données.De l'entité.Interne.LazyInternalConnection.Initialize() +47
Système.Les données.De l'entité.Interne.LazyInternalConnection.get_ConnectionHasModel()
+9 Système.Les données.De l'entité.Interne.LazyInternalContext.InitializeContext()
+262 Système.Les données.De l'entité.Interne.InternalContext.GetEntitySetAndBaseTypeForType(Type
entityType) +17
Système.Les données.De l'entité.Interne.Linq.InternalSet1.Initialize() +63
1.GetEnumerator() +15
System.Data.Entity.Internal.Linq.InternalSet
Système.Les données.De l'entité.L'Infrastructure.DbQuery1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
1..ctor(IEnumerable
+40 System.Collections.Generic.List1 collection) +315 System.Linq.Enumerable.ToList(IEnumerable
1
source) +58 onlinetercume.Les contrôleurs.istakiplerController.Index()
dans
C:\wwwroot\nps\nps\Controllers\istakiplerController.cs:21
lambda_method(Fermeture , ControllerBase , Object[] ) +62
Système.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase
contrôleur, Object[] paramètres) +17
Système.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext
controllerContext, IDictionary2 parameters) +208
2
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext
controllerContext, ActionDescriptor actionDescriptor, IDictionary
les paramètres) +27
Système.Web.Mvc.<>c_DisplayClass15.b_12()
+55 Système.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter
filtre, ActionExecutingContext preContext, Func1 continuation) +263
1 filtres, ActionDescriptor actionDescriptor,
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14()
+19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext
controllerContext, IList
IDictionary2 parameters) +191
1.b__7(IAsyncResult
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext
controllerContext, String actionName) +343
System.Web.Mvc.Controller.ExecuteCore() +116
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
+97 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext
requestContext) +10
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
System.Web.Mvc.Async.<>c__DisplayClass8
) +12 Système.Web.Mvc.Async.WrappedAsyncResult`1.Fin() +62 Système.Web.Mvc.<>c_DisplayClasse.b_d() +50
Système.Web.Mvc.SecurityUtil.b_0(Action f) +7
Système.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action)
+22.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
Système.Web.Mvc.MvcHandler.Système.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult
le résultat) +9
Système.Web.CallHandlerExecutionStep.Système.Web.HttpApplication.IExecutionStep.Execute()
+8970061 Système.Web.HttpApplication.ExecuteStep(IExecutionStep étape, Boolean& completedSynchronously) +184Informations De Version: Microsoft .NET Framework Version:4.0.30319;
ASP.NET Version:4.0.30319.272
Vous devez vous connecter pour publier un commentaire.
Le prestataire doit être inscrit dans l'une des hiérarchique des fichiers de configuration. Par exemple, j'ai le fournisseur oracle enregistré dans la machine.fichier de configuration (qui semble être fait automatiquement quand j'ai instalé odac avec le programme d'installation instaler).
Ma machine.config ressemble à ça:
Être prudent, car dans Asp.Net les demandes il y a un autre cofig fichier dans la hiérarchie appelé aussi web.config. C'est dans le même dossier que la machine.config. Dans ce lien est expliqué la hiérarchie de configuration de Asp.Net: msdn
Si le fournisseur n'est pas enregistré dans l'un des fichiers les a signalé une erreur est levée. Dans ce cas, je pense que la meilleure façon de le résoudre est d'ajouter la configuration directement dans votre asp.net aplication web.fichier de configuration. quelque chose comme ça:
L'erreur est clair, il ne peut pas trouver le fournisseur de données MySQL
Si vous avez déployé sur votre serveur de production peut-être vous n'avez pas déployé MySQL composant, vérifiez que vous avez déployé le MySQL dll dans le dossier bin de votre application
Un problème commun est lorsque vous avez le composant installé dans le GAC dans le développement de la sandbox et ils ne sont pas présents dans le serveur de production, de vérifier si la dll dans le GAC:
Le Global Assembly Cache (GAC) est situé à:
%windir%\assembly
Vous pouvez forcer les références de votre projet à être déployé sur le serveur de production en sélectionnant le copie toujours propriété de l'assemblée qui est vrai, cependant, s'il est configuré pour résoudre la référence du GAC, alors il est préférable d'installer le composant dans le GAC dans la boîte de production:
Voici les étapes pour installer le fournisseur de données MySQL dans le GAC
http://blog.jeffreymcmanus.com/555/installing-the-mysql-adonet-connector-into-the-global-assembly-cache/
Comme un résumé:
Solution 1:
Exécutez la commande suivante pour enregistrer la base de données de fournisseur dans le GAC (de cette façon que la version de votre serveur MySQL fournisseur de données seront installés disponible dans le monde entier pour toutes les applications dans le serveur)
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\gacutil.exe" /je MySql.Data.dll
Solution 2:
Copiez le
MySql.Data.dll
dll à la bin répertoire de votre applicationPour cette erreur dans Microsoft Visual Studio Professional 2012, il suffit de cocher la ProviderName :