À l'aide de SQL Server CE 4 sur un hôte distant avec MVC 3
Je viens de mettre mon hôte à MVC 3, mais je vais essayer de faire un "hello world" à l'aide de SQLCE 4.0 mais je viens de recevoir:
Désolé, une erreur s'est produite lors
le traitement de votre demande.
Je vois ma mise en page et tout, mais au lieu de données que je vois cela.
Sur localhost fonctionne comme prévu
J'ai:
<add name="PruebaContext" connectionString="Data Source=|DataDirectory|db.sdf" providerName="System.Data.SqlServerCE.4.0"/>
comme connectionString.
J'ai mis le sdf dans le cadre de ce projet, j'ai ajouté le System.Data.SqlServerCE.dll le projet avec le copie locale de vrai.
Je n'ai plus d'idées. Le connString, la dll est dans /bin et travaille en localhost.
Des idées?
Grâce.
MODIFIER
J'ai quelques journaux d'aujourd'hui:
Sans l' "System.Data.SqlServerCE.dll" sur /bin:
Incapable de trouver la demande .Net Framework Fournisseur De Données. Il ne peut pas être installé.
Système.ArgumentException: Impossible de trouver le demande .Net Framework Fournisseur De Données. Il ne peut pas être installé.
Assez Fine. Ils n'ont pas SqlServerCE4.
Avec la Dll sur la copie locale, AKA /bin:
Impossible de charger les composants natifs de SQL Server Compact correspondant à la ADO.NET fournisseur de version 8482. Installer la bonne version de SQL Server Compact. Reportez-vous à l'article de la 974247 pour plus de détails.
Détails De L'Exception: System.Les données.SqlServerCe.SqlCeException: Impossible de charger les composants natifs de SQL Server Compact correspondant à la ADO.NET fournisseur de version 8482. Installer la bonne version de SQL Server Compact. Reportez-vous à l'article de la 974247 pour plus de détails.
La KB dit que j'ai besoin de la dll à partir de x86 et amd64. J'ai lu quelque part que si je copie deux répertoires /bin, comme: /bin/x86 et /bin/amd64 . J'ai copié des dossiers à partir du dossier privé de SqlServerCE 4 dossier d'installation. Maintenant j'ai:
Possible fichier incompatibilité de version entre détecté ADO.NET Fournisseur de et des binaires natifs de SQL Server Compact qui peut entraîner une erreur de fonctionnalité. Cela pourrait être dû à la présence de plusieurs instances de SQL Server Compact de versions différentes ou à cause d'une mauvaise binaires avec le même nom que SQL Server Compact binaires. S'il vous plaît installer SQL Server Compact binaires de la version correspondante.
Ok. Sur le dossier racine de SQLServerCE4 j'ai quelques dll trop, alors j'ai supprimé que les deux dossiers et copié que dll /bin:
Impossible de charger le fichier ou l'assembly 'file:///C:\HostingSpaces\jesusrod\foxandxss.net\wwwroot\mvc3\bin\sqlceca40.dll" ou une de ses dépendances. Le module a été prévu pour contenir un manifeste d'assembly.
Je pense que j'ai essayé toutes les choses. Scottgu dit que SqlServerCE 4 devrait fonctionner sur n'importe quel serveur sans installation.
- Consulter le journal des événements. L'erreur doit être connecté il.
- Je ne sais pas si je cherche au bon endroit, mais mon hôte ne semble avoir un système de log.
- Scott Gu est faux, j'ai eu des problèmes similaires dans un certain nombre de lieux dans un établissement entièrement non-environnement de cloud. Tout droit jusqu'à la Win2008. 🙁 J'espère que je peux le comprendre, à bientôt.
- Reliant stackoverflow.com/questions/10739845/... dans le cas où il est également utile pour les autres
Vous devez vous connecter pour publier un commentaire.
Je n'aime pas à répondre à ma propre réponse, mais après des heures de travail, j'ai la réponse!
Nous avons besoin de:
NuGet (Mieux que la copie de la dll à partir de fichier de programme)
Avec NuGet nous installer:
Le problème était que EF besoin d'une autre dll for SQL CE 4 (System.Data.SqlServerCe.Entity.dll) et nous avons besoin de mettre un peu de configuration sur le web.config:
Avec qui, tout fonctionne. J'ai vu comme 5 différentes erreurs, nous avons donc besoin de:
Les 2 dll à partir de SQL CE 4, l'EF dll, la config dans le web.config et la dll native (le répertoire du package où NuGet téléchargements de la bibliothèque).
Il semble que le web.config config vers une version concrète de la SQL CE .dll et la version de la RTM paquet est différent. Je ne peux pas trouver la version concrète j'ai donc utiliser le .dll à partir de NuGet.
C'est tout, SQL CE 4 + EF sur un hôte distant.
Suffit d'utiliser le menu "Projet/Ajouter des Dépendances pouvant être déployées..."
Je ne suis pas sûr si c'est Visual Studio 2010 service pack 1 seulement.
Vous devez vous assurer que vous avez le natif SQL CE 4.0 dll dans votre répertoire de l'application (par exemple, \bin) en plus de la gestion de l'un.
Copiez-les à partir "C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Private\amd64" (ou x86 si vous avez une application 32 bits).
Il peut également être judicieux de déployer la MSVCR90.dll et c'est trop manifeste. Jetez un oeil à la documentation en C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0
pour plus d'informations sur les Dll requises et de la redistribution.
Cela ressemble à un problème qui est causé par le fait d'avoir plusieurs intermédiaires bits de données dans un projet, où vous avez remplacé les fichiers inclus sans nettoyage.
Je recommanderais de faire un Build->Nettoyer, suivi par assurant que tous vos références sont de la nouvelle, de corriger Dll, et qu'aucun des anciens fichiers ou références sont toujours autour de n'importe où dans votre projet. Tenter de reconstruire une fois que c'est fait.
Puisque c'est un hello world projet, il peut être plus facile de commencer à partir de zéro avec un nouveau projet, et inclure les dll dans il.
essayez d'installer SQL CE manuellement.
http://www.microsoft.com/download/en/details.aspx?id=17876
Bonne Chance.
J'ai eu le même problème. Essaye de mettre un code-premier SQL CE 4.0 application en jeu sur mon compte goDaddy.
J'ai commencé à déconner avec les différents fichiers DLL basée sur le fil ci-dessus et d'autres tutoriels, mais rien ne semblait fonctionner. Il manquait quelque chose. Puis, j'ai lu sur le Ajouter des Dépendances Déployables réponse.
Je l'ai fait, qui a créé _bin_deployableAssemblies dossier. Ensuite, j'ai supprimé tout de mon dossier bin, sauf mon projet de base de la DLL et tout copié à partir de _bin_deployableAssemblies dans le dossier bin.
J'ai nettoyé tout ce qui est dans le dossier bin sur mon goDaddy application et resynced les fichiers. Qui ont travaillé. L'application des charges et si je fais codefirst changements en cours, le dbcontext recrée la base de données pour moi. Bien sûr, je ne veux pas que dans la production, mais je voulais savoir que tout fonctionnait.
Je l'ai fait essayer à l'aide de l'ASP tutoriel sur le déploiement d'une application MVC pour un environnement d'hébergement (ils utilisent Cytanium d'hébergement que leur exemple), mais cela n'a pas fonctionné pour moi sur GoDaddy. J'ai dû copier les fichiers manuellement.
Merci à tous. Cela a été une grande étape pour moi d'être en mesure de se sentir à l'aise de continuer dans MVC et EF.