L'exécution d'une ASP.NET MVC application à partir d'un répertoire virtuel dans IIS 7
Est-il possible d'exécuter une application MVC à partir d'un répertoire virtuel dans IIS 7? J'ai construit un utilitaire open source application de ASP.NET MVC3 et je me demandais si c'était une erreur; c'est probablement le cas si le site ne peut pas être exécuté à partir d'un répertoire virtuel.
Prendre une simple route par défaut de /home/index si en cours d'exécution à partir d'un répertoire virtuel nommé /app, sera effectivement /app/home index. Le type qui sème la pagaille pour le routage.
Je ne veux pas l'utilisateur d'avoir à changer de route et de recompiler le projet d'utiliser l'application dans un répertoire virtuel. Est-il un moyen pour modifier un paramètre de configuration pour indiquer que le dossier racine de ce que l'application est?
Vous devez vous connecter pour publier un commentaire.
Non seulement que c'est possible, mais c'est la voie préférée.
Pas si vous utilisez Html helpers lorsque vous traitez avec des url qui va prendre soin de cela.
Voici un exemple typique de ce que vous ne devriez jamais faire:
et voici comment cela doit être fait:
Voici un autre exemple typique de quelque chose que vous ne devriez jamais faire:
et voici comment cela devrait être écrit:
Voici un autre exemple de quelque chose que vous ne devriez jamais faire:
et voici comment cela devrait être écrit:
Je pense que vous obtenez le point.
Oui, cela fonctionne bien, et non, il n'est pas gâcher de routage. Toutefois, l'application que vous êtes en cours d'exécution peut être buggé et pas en charge cette configuration.
Vous n'avez pas besoin d'un "paramètre de configuration", parce que IIS et ASP.NET déjà de gérer cela correctement.
Vous n'avez, cependant, nécessaire pour éviter les codée en dur dans l'Uri de votre point de vue.
E. g., ce faire:
...au lieu de:
...et de même pour les liens de feuille de style et les références.
autant que je sache, les routes sont toutes basées sur la racine de l'application, et non pas la racine, donc pensez à eux comme au début avec
~/
, pas/
Oui, cela fonctionne. Et aussi longtemps que vous êtes en utilisant les méthodes d'aide à créer l'action de l'Url (par exemple
<%=Html.ActionLink(...) %>
il n'est pas nécessaire de reconfigurer ou de recompiler.