Bonjour à tous !

Je travaille actuellement sur un micro-logiciel de gestion pour une TPE. Pour plus de praticité, l'outil sera entièrement hébergé sur Windows Azure. Le tout étant assez simple, il s'agit d'un simple site hébergé : pas de Web Service ou autre donc.

J'ai donc réalisé un projet ASP.Net MVC 4 Code First. J'ai écris pratiquement toute la couche Modèle (il reste juste quelque champs à rajouter plus tard, en fonction des demandes du client), ainsi qu'un controller très simple. Tout marche très bien en local.

Je voulais ensuite publier l'application en ligne pour faire un premier test. La publication se déroule sans problème, et je peux accéder au site. Cependant, lorsque j'accède à une page nécessitant un accès DB, j'obtiens systématiquement le message d'erreur très explicite suivant :
Erreur. Une erreur s’est produite lors du traitement de la requête.
L'erreur survient également pour la fonctionnalité de login, mais j'ai modifié la classe UserProfile du template.

Après une petite inspection, j'ai découvert que la base de données n'avait pas du tout le schéma. C'est un peu comme si les migrations n'avaient pas été effectuées pendant la publication.

Cela fait deux jours que je galère sur ce problème, en essayant un peu tout et n'importe quoi, en fouillant le net, ... mais impossible de trouver une solution.

Voici les quelques unes des solutions les plus pertinentes que j'ai pu utilisé, sans succès :
  • Cocher la case lors de la publication
  • Créer un initilisateur basé sur la classe MigrateDatabaseToLatestVersion
  • Modifier la classe SimpleMembershipInitializer pour forcer une réinitialisation de la DB et les migrations


Si quelqu'un peut me donner une piste pour résoudre ce problème, je lui en serai extrêmement reconnaissant (et mes maux de tête ) !


EDIT
Bon, j'avance un peu et j'ai réussi à mettre ma base de données en ligne en utilisant SQL Azure Migrations Wizard. C'est quand même dommage, même décevant, que MS n'intègre pas ça directement dans le processus de publication. L'inscription et la connexion sont maintenant opérationnels. Il ne me reste plus qu'à creuser pour trouver les autres problèmes causant une erreur lors d'un accès en base de données

EDIT 2
Problème résolu ! Voici comment j'ai résolu mon problème :
  • Effectuer la publication de votre base de données en utilisant SQL Azure Migrations Wizard
  • Lors de la publication de votre projet, décochez la case concernant les migrations
  • Effectuer une nouvelle publication


L'erreur que j'ai présenté au début étant très sommaire, et aucune informations complémentaires n'ayant été disponibles dans les Logs, voici comment j'ai obtenu plus d'informations sur l'exception levée :
  • Au sein du controlleur posant problème, ajouter une vue prenant une exception en paramètre.
  • Côté controlleur, reproduire le code provoquant une exception dans un bloc try, et envoyer l'exception levée à la vue précédemment créée.

Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public ActionResult Test()
{
    try
    {
        // Code posant problème
    }
    catch (Exception exception)
    {
        return View(exception);
    }
    return View();
}
Il existe sûrement une méthode plus simple, mais étant un débutant complet en ASP.Net, c'est déjà très bien