Je sais que cela a été répondu plusieurs fois, mais aucune des solutions n'a fonctionné pour moi. J'ai publié mon application ASP.NET MVC 3 (c'était juste le modèle Internet sans aucune modification) pour voir si je pouvais le faire fonctionner publiquement. Cependant, lorsque je visite le site, il apparaît avec une erreur 403. Venant d'un arrière-plan php/linux, je suis confus et je n'ai aucune idée où chercher. Je n'apprends .NET que depuis environ 8 à 9 mois et tout ce que j'ai testé auparavant était sur le serveur de développement local via VS2010. Il semble presque que le serveur ne sait pas que ce devrait être une application MVC ou que je dois changer mon routage.
Quoi qu'il en soit, j'ai vérifié que le paramètre du serveur est .NET 4. Toute aide serait grandement appréciée.
AUSSI, c'est un environnement d'hébergement partagé utilisant arvixe.
Pour moi, cela a fait l'affaire (Réponse originale de Mmerrell à Obtention d'une erreur 404.0 pour l'application ASP.NET MVC 3 sur IIS 7.0/Windows Server 2008 )
En fait, vous venez de me rappeler que je devais résoudre ce problème dans un environnement ici. Si votre situation est la même que la mienne, c'est une solution simple.
Ajoutez simplement ce qui suit à votre configuration Web:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
Assurez-vous que vous avez choisi le pool d'applications "ASP.Net 4.0" et non le pool d'applications créé pour votre application. Assurez-vous que votre pool d'applications utilise "ApplicationPoolIdentity" et NON NetworkService. Supprimez l'autorisation NetworkService de votre dossier racine. Vous n'en avez pas besoin. IIS a une identité intégrée (IIS_IUSRS).
J'ai eu ce même problème après la publication d'un site Web MVC 4 sur un serveur distant à l'aide de la publication FTP. Ce qui a fini par fonctionner pour moi était après la publication via Visual Studio, connectez-vous à IIS sur le serveur distant, localisez le répertoire publié -> clic droit -> Convertir en application.
Vous ne savez pas s'il existe un moyen de le spécifier dans le web.config/propriétés, si vous n'avez pas accès au serveur?
403 est une erreur interdite. Essayez de vérifier les autorisations NTFS du dossier dans lequel vous avez déployé, assurez-vous que le Network Service
l'utilisateur a une autorisation de lecture
En outre, vérifiez le mécanisme d'authentification et d'autorisation dans l'application IIS:
Modifié:
Règles d'autorisation .Net
1- Vérifiez que votre application fonctionne sous .NET 4.0 (vous l'avez fait)
2- Vérifiez auprès de la société d'hébergement qu'elle prend en charge le framework MVC 3 sur leur plan d'hébergement.
Vous trouverez plus d'informations sur le déploiement bin de votre MVC ASP.NET ici: --- (http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx =
4- Vérifiez que "Network Service" dispose des droits d'accès appropriés à votre dossier. il devrait en principe avoir l'autorisation "Lecture".
N'oubliez pas aspnet_regiis.exe -ir
.
<handlers>
<add name="rewrite" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
</handlers>
Demandez à votre hébergeur d'ajouter ces gestionnaires dans webconfig
Essayez de changer le mode de pipeline géré du pool d'applications sur "Classique" au lieu de "Intégré". Bien que ce ne soit peut-être pas le résultat final que vous recherchez (il peut y avoir de réels avantages à utiliser le mode intégré), au moins cela vous indiquera la bonne direction ... si cela fonctionne.