Pourquoi ne pas en faire mon projet MVC travail après la publication d'elle?
Récemment, j'ai publié mon premier MVC 2 projet d'un produit commercial de serveur web, Windows 2008, et qui était censé prend en charge d'autres MVC sites, sans problème, mais ont connu quelques problèmes. Voici la structure de haut niveau du projet. Comme vous pouvez le voir, c'est très simple:
Mais, après que le site est publié, et je, accédez à l'URL, j'obtiens "Erreur HTTP 403.14 - Interdit: Le serveur Web est configuré pour ne pas afficher le contenu de ce répertoire."
Donc, j'ai contacté l'hébergeur web à ce sujet et a dit que je devais inclure par défaut de la page de destination, tels que par Défaut.aspx, Index.aspx, etc. Je doutais de cette réponse était exacte, parce que je pensais que MVC de Routage aurait pris soin de cela, mais j'ai comme l'a suggéré, de toute façon, l'ajout d'une redirection vers ma maison contrôleur par Défaut.aspx.cs code-behind, mais j'ai reçu une Erreur HTTP 404. J'ai ajouté une redirection par des conseils similaires à ceux trouvés dans cet article: http://www.58bits.com/blog/CommentView,guid,10b2ddfa-057c-41d0-bdc7-564b212ce896.aspx.
J'ai été un va-et-vient avec l'hébergeur web à ce sujet depuis plus d'une semaine, à travers une douzaine de différentes réponses et les réponses, je n'ai pas encore été en mesure de trouver une solution à ce. Je suis sûr c'est une chose simple à résoudre, mais je n'ai aucune idée de ce à essayer ensuite, ou à suggérer à l'hébergement web le soutien dont ils ont essayer la prochaine.
Soooo ... sachant que le StackOverflow de la communauté est plus intelligent que moi et les techniciens d'assistance pour mon hébergement web de la société combinée, mille fois plus, j'espère que vous pourrez m'aider à trouver une solution ici, donc je peux publier mon projet et d'y accéder sans erreur.
- Je n'ai pas modifié le fichier htaccess à tous. Finalement, j'avais l'intention de le faire, tout en essayant d'appliquer les bonnes pratiques SEO pour le site plus tard, mais je n'avais pas eu là encore. Ai-je besoin de modifier le fichier htaccess pour que cela fonctionne?
- Est le générique de l'application de cartographie mis en place dans IIS et est "vérifiez que le fichier existe" en blanc? (En fait, peut-être que ce n'est pas nécessaire, en 2008 - ne me souviens pas)
- Rup - Merci pour vous réponse. Mais, honnêtement, je ne sais pas la réponse. Une partie de la difficulté ici est que je vais avoir à travailler avec un hors de source, société d'hébergement web, et donc je n'ai pas accès à la config des informations de ce type. Mais, je PEUX demander à ce sujet, et offrir des suggestions pour eux, ce que je vais faire. Dans l'intervalle, est-il autre chose qui pourrait être la cause?
Vous devez vous connecter pour publier un commentaire.
Il y a quelques choses qui pourraient être la cause de l'erreur:
Problème avec le MVC bibliothèques
Le serveur de production pourrait ne pas avoir le MVC bibliothèques stockées dans le GAC. Pour résoudre ce problème, tout ce que vous avez à faire est d'aller dans votre projet MVC est
References
volet/dossier et de trouverSystem.Web.Mvc
,System.Web.Routing
, etSystem.Web.Abstractions
. Maintenant, sélectionnez par Ctrl en cliquant sur eux, et l'ensemble de la Copie Locale de vrai dans la fenêtre des Propriétés.Il est difficile de savoir avant de le publier sur un serveur si c'est le cas, je vous le recommande il suffit de régler les assemblées de copie locale de tous les temps.
De La Page De Destination
Votre page de destination peut avoir des problèmes. De mon expérience avec ASP.NET MVC, j'ai vu que la page de destination est nécessaire pour IIS fonctionne correctement. Je suis l'aide de la page qui a été inclus dans le ASP.NET MVC 2 modèle. Vous devriez comparer la mine à la vôtre pour voir si vous avez tout ce qu'il faut:
Par défaut.aspx:
Par défaut.aspx.cs:
Autorisations
Basé sur le premier code d'état HTTP que vous avez, il peut y avoir un problème d'autorisations. Le dossier contenant votre application MVC doit être définie comme une application et de définir les autorisations appropriées.
Il est assez facile de faire ces deux choses par IIS. Cependant, vous avez probablement n'avez pas accès à IIS; si vous le faites, vous êtes très chanceux!
Sinon, vous pouvez modifier les autorisations d'accès par FTP à l'aide du
chmod
de commande. Vous pouvez vous connecter via Filezilla, un très bon open-source client FTP, un juste de le faire par un clic-droit + boîte de dialogue.Que pour définir le dossier comme une application, vous devez vérifier si vous pouvez le faire par le biais de l'IIS choses qui vous est fourni par l'hôte. Si non, contactez-les et demandez-leur de le configurer.
Bonne chance! Espère que j'ai aidé.
Il se peut que votre production IIS n'ont pas le MVC de référence des fichiers de chargement de votre site. J'ai rencontré le même problème lorsque j'ai chargé un MVC site à un hôte qui a déclaré: "nous soutenons pleinement MVC." Vous pouvez essayer de publication à l'aide du "tous les fichiers du projet" option. Je crois que le problème peut également être résolu en allant dans votre dossier de références et en sélectionnant le mvc références. Je ne suis pas à mon ordinateur du développeur pour l'instant, mais je crois que vous modifiez une certaine propriété pour les références à les inclure dans vos fichiers publiés.
Essayer pré-compilation de votre application. Dans le programme d'installation visual studio un projet de Déploiement et de la déployer en mode release.
Parce que c'est pré-compilé, vous n'êtes pas reposer sur IIS pour compiler le projet, vous pouvez l'exécuter. C'est ce que je fais toujours ces jours-IIS sur le serveur de production peut être une douleur si j'ai besoin de le forcer à re-compiler ou mettre à jour..
Sur la base des commentaires et des réponses ci-dessus, j'ai fini d'explorer mappage d'application générique en demandant à mon hébergeur si ils le soutiennent. Voici ce que j'ai reçu en réponse:
Générique cartographie n'est pas pris en charge par nos services.
Si vous souhaitez utiliser l'URL ré-écriture, qui est le même que le reroutage veuillez utiliser l'exemple ci-dessous.
Exemple d'utilisation de la réécriture d'URL de la carte où l'URL suivante
/par défaut.aspx?id=1 peut être remplacé par /par défaut.aspx?id=25
Pour rediriger votre site web à l'aide d'ASP de créer le fichier "default.asp".
Placez le code suivant à l'intérieur:
Pour rediriger votre site web en utilisant HTML:
Des choses, au-delà même de travail?. Sérieusement, faut-il être dur de publier un projet MVC? Je commence vraiment à être frustré ... 🙁
Devrais-je chercher un nouvel hébergeur? Que cela ferait une différence?
La requête suivante est envoyée:
http://stackoverflow.com?variableValue=87
page de redirection à l'aide de valeurs d'une variable dans une Chaîne de Requête
:-
Dim variableValue
variableValue = Request.QueryString("L'Occasion")
si variableValue = 87
Réponse.Statut="301 Moved Permanently"
Réponse.AddHeader "Emplacement","http://www.google.com"
fin si