6
votes

Impossible de trouver le fournisseur de données demandé demandé .NET. il pourrait ne pas être installé

Après avoir terminé l'ASP.NET MVC 3 (Trouvez Ici ), j'ai essayé de publier l'application en ligne. J'ai contacté la société d'hébergement pour être sûr s'il est possible d'héberger des applications MVC 3. Mais je devais passer à Bin Déployer l'application (fichiers DLL). Ainsi, après avoir suivi quelques étapes sur Hanselmans blog , je suis coincé sur l'erreur suivante: < / p>

Impossible de trouver le fournisseur de données Framework demandé .NET. Il pourrait ne pas être installé. Description: Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et où elle est originaire du code.

Détails d'exception: System.ArgumentException: incapable de trouver le Demandé .NET Framework Fournisseur de données. Il peut ne pas être installé.

Erreur source:

Une exception non gérée a été générée lors de l'exécution de la Demande Web actuelle. Informations concernant l'origine et l'emplacement de L'exception peut être identifiée à l'aide de la trace de pile d'exception ci-dessous.

trace de pile:

[ArgumentException: Impossible de trouver les données demandées demandées .NET Fournisseur. Il peut ne pas être installé.]
System.data.common.dbproviderFactories.getFactory (chaîne fournisseurInvariaryName) +1420503
System.data.entity.internal.lazyinternernalconnection.tryinitialisefromappconfig Nom) +362
System.data.entity.internal.lazyIntinternalConnection.Imitialise () +49
System.data.entity.internal.lazyinternernalconnection.get_connectionHasmodel () +10 System.Data.entity.internal.lazyinternernalContext.initializecontext () +265 System.Data.entity.Internal.internalContext.GetentitysetTypeTypeType (type Entitype) +17
System.data.entity.internal.linq.internalset 1.Initialize () +62
System.data.entity.internal.linq.internalset 1.get_internalContext () +15 System.Data.entity.infrastructure.dbQuery 1.System.linq.Iqueuxable.get_Provider () +37 System.Linq.Queryable.orderbyDescendances (iquéryable 1 source, expression 1 juche) +66
Mvcmusicstore.controls.homecontroller.getopsellingalbums (int32 Comptez) +420 mvcmusicstore.controls.homecontroller.index () +47
Lambda_Method (fermeture, contrôleurbase, objet []) +40
System.web.mvc.actionMethodDispatcher.execute (contrôleurbase Contrôleur, Objet [] Paramètres) +17
System.web.mvc.refledeceActionDescriptor.execute (ControlContext ControlContext, Igritary 2 paramètres) +188
System.Web.MVC.ControllerActionInvoker.InvokeactionMethod (ControlContext ControlContext, ActionDescriptor ActionDescriptor, ITMINGARY`2 Paramètres) +27

Toute aide est appréciée.


4 commentaires

Utilisez-vous un cadre d'entité?


Oui, c'est exactement ce qui est mentionné dans le tutoriel.


Avez-vous ajouté une copie locale = fidèle à la référence-cadre d'entité?


Je ne connais pas cela. Mais il est déjà prêt à vrai.


5 Réponses :


14
votes

de mon expérience, cette erreur signifie que la valeur de l'attribut Providername sur la chaîne de connexion de votre web.config est incorrect ou le fournisseur littéralement n'est pas installée. Si votre Providername est défini sur system.data.sqlserverce.4.0 (SQL Server compact), qui n'est pas rare dans le développement, je peux vous garantir que ce n'est pas installé sur votre hôte Web; Il est utilisé uniquement dans Visual Studio pour le développement. Vous devez probablement simplement le changer à un véritable fournisseur SQL Server: system.data.sqlclient .


2 commentaires

Vérifiez votre chaîne de connexion pour vous assurer que le nom du serveur et les informations d'authentification sont corrects.


C'était mon problème et ce post m'a aidé à comprendre mon problème.



2
votes

J'ai résolu le problème.

Je trouve un espace dans Providername. Donc, .NET Framework n'est pas capable de choisir une chaîne de connexion est avec la base de données.

Vérifiez votre valeur d'attribut de balise ConnectionsRing. Votre nom source peut ne pas être bien défini. Recherchez des espaces (car la nommée n'autorise aucune) et vérifiez des caractères supplémentaires dans la valeur Providername.


0 commentaires

0
votes

J'ai fait face au problème similaire .. Et il y a une solution très amusante pour cela .. Il suffit de regarder vos connexions - si c'est la même chose que vous avez utilisé pour vos autres applications ASP.NET, il ne devrait pas être .. . L'entité framework a un cas différent de xxx

change-le à - xxx

pouvez-vous identifier la différence .. un seul petit - - Il n'y a pas ';' à la fin de Providername .. Oui et cela fait la différence. Il devrait être la même chose à la même copie du nom Provenidern, bien que je n'ai pas vérifié la sensibilité de l'affaire. Mais cela a résolu mon problème


0 commentaires

1
votes

Un autre point de données ...

Je travaille avec Oracle et le cadre d'entité. J'ai installé l'oracle odp.net, pilote géré pour obtenir ce problème. Dans le gestionnaire de packages Nuget, entrez P>

Install-Package Oracle.ManagedDataAccess


1 commentaires

Salut @jeff. Je suis actuellement confronté au même problème tout en déployant le site dans IIS 8.5. Pouvez-vous vérifier cette Stackoverflow.com/q/42090440/1839005 . Appréciez vos précieuses suggestions.



0
votes

L'erreur était parfaite et les commentaires ci-dessus étaient bons mais dans mon cas, j'ai littéralement orthographié le fournisseur qui ne va pas dans le fichier web.config: system.data.sqlclinet pas System.Data .Sqlclient


0 commentaires