0

J'ai une application que nous essayons de migrer lentement vers le modèle de gestionnaire de ressources d'Azure. Vendredi dernier, j'ai publié l'application web principale sur un App Service. Et quand je l'ai testé dans un navigateur après la publication, il s'est très bien chargé, j'ai pu me connecter, etc.L'erreur DI (unité) ne se manifeste qu'après la publication dans Azure App Service

Puis, pendant le week-end, il m'est apparu que j'avais publié de la mauvaise branche. Alors ce matin, je suis entré, j'ai changé de branche dans VS, et j'ai re-publié. Cette fois, quand j'ai testé l'application dans un navigateur, il a immédiatement jeté une erreur.

[InvalidOperationException: An error occurred when trying to create a controller of type 'Response.Controllers.LogOnController'. Make sure that the controller has a parameterless public constructor.] 

Je l'ai vu cette erreur avant. C'est une erreur d'injection de dépendance. L'application utilise Unity pour D.I. La chose est, je peux lancer cette branche sur ma boîte de dev locale directement de VS sans problème. Pour dépanner, j'ai supprimé toute l'application Web dans Azure et l'ai recréée. Ensuite, je suis revenu à VS retour à la branche originale que j'ai publié vendredi, et re-publié de cette même branche.

Je reçois la même erreur. En d'autres termes, ce qui a fonctionné le vendredi jette maintenant cette erreur DI lundi. Rien n'a changé. J'ai regardé dans le fichier Global.asax, et la dépendance que l'erreur mentionne est enregistrée. Je n'ai aucune idée de ce qui se passe, mais je pense que l'erreur réelle pourrait être un faux-fuyant.

Et encore, tout fonctionne très bien lors de l'exécution sur ma boîte de dev local faisant un débogage de VS. Et la même application fonctionne très bien avec publié sur notre (bientôt-à-vieux) serveur sur RackSpace.

Vous pouvez voir l'erreur ici:

http://response-web-toyota-staging.azurewebsites.net/LogOn

Répondre

0

Eh bien, pour ce que ça vaut, je résolu ce problème en FTP'ing dans le service App et de compensation manuellement tous les fichiers à l'intérieur du « site 'répertoire. Puis j'ai (encore) supprimé le service d'application, republié, et voilà. Maintenant ça marche encore.

J'aurais pensé que la suppression du service d'application aurait fait la même chose, mais je suppose que non.

Bizarre.