0

Lors de la création d'un tout nouveau projet de rôle Web MVC4 dans VS2012, il génère une erreur HTTP 403 lors de la publication et de l'exécution sur Azure. L'exécution locale est correcte à la fois lors de l'exécution de l'assembly MVC4 et lors de l'exécution de l'assembly de déploiement Azure avec l'assembly MVC4 en tant que rôle Web.Erreur 403 interdite lors de l'exécution de MVC4 sur Azure

Répondre

1

J'ai passé beaucoup de temps à comprendre cela. Aucun résultat pertinent sur Google, j'ai donc fini par créer un nouveau projet MVC4, mais cette fois-ci en le créant en passant par l'assistant de l'assembly de déploiement pour ajouter des rôles web MVC4 (clic droit). Cela a fonctionné. Les quelques différences dans web.config m'ont donné des indices que le premier assemblage MVC4 a été créé sur .net 4.5 et avait été changé en .net 4.0 par moi, tandis que le second a été créé directement pour .net 4.0. Voilà comment je finalement trouvé les notes de version MVC4:

http://www.asp.net/whitepapers/mvc4-release-notes

L'un des points de balle indique clairement ma situation exacte:

403 Interdite lors de l'exécution d'une application ASP.NET MVC 4 sur Azure après avoir changé de cible 4,0 de 4,5:

Si vous modifiez un projet ASP.NET MVC 4 pour cibler 4,0 après 4,5 et ciblage puis déployer sur Azure vous pouvez voir un 403 Erreur interdite lors de l'exécution. Pour contourner ce problème ajoutez ce qui suit à votre web.config:

La prochaine fois que je vais regarder à travers les notes de version plus attentivement pour les nouvelles versions.

0

Essayez d'ajouter ceci à web.config, après system.webServer:

<runtime> 
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
    </dependentAssembly> 
</assemblyBinding> 

+1

Je ne suis pas sûr que cela est pertinent? Voir ma propre réponse. Ce comportement est documenté et sera corrigé dès qu'Azure prend en charge .NET 4.5. – angularsen

Questions connexes