Existe-t-il un moyen de créer un répertoire virtuel dans IIS express? Je sais que Cassini ne peut pas faire cela et ce serait bien de pouvoir le faire sans utiliser une version complète d'IIS.
Je l'ai si loin que je peux accéder à mon application localement dans IIS express comme ceci:
Ce que je voudrais faire, c'est créer un répertoire virtuel appelé "OffSiteStuff" et le pointer vers un emplacement sur mon lecteur C, comme "c: \ offsitestuff", puis parcourir les éléments de ce dossier comme ceci:
http: // localhost: 1132 / OffSiteStuff / UserUploadedImage.jpg
Je sais que je pourrais le faire avec un dossier sur mon site et toujours utiliser IIS Express, ou, d'ailleurs, le vieux Cassini, mais ce dossier stockera les images téléchargées par les utilisateurs et je ne veux vraiment pas que ces images soient mélangées avec fichiers d'application.
L'autre solution, «go big», consiste à déployer le site sur une instance Server 2008 IIS 7.5 à part entière chaque fois que je veux déboguer les fonctionnalités qui utilisent du contenu hors site, mais c'est aussi un peu compliqué.
Est-il possible de faire cela dans l' <System.WebServer />
élément de configuration Web?
la source
applicationHost.config
fichier est sous la racine du projet:${PROJECT}\.vs\config\applicationHost.config
.Réponses:
La configuration IIS express est gérée par applicationhost.config.
Vous pouvez le trouver dans
À l'intérieur, vous pouvez trouver la section des sites qui contient une section pour chaque site configuré par IIS Express.
Ajoutez (ou modifiez) une section de site comme celle-ci:
En pratique, vous devez ajouter une nouvelle balise d'application dans votre site pour chaque répertoire virtuel. Vous bénéficiez d'une grande flexibilité car vous pouvez définir une configuration différente pour le répertoire virtuel (par exemple une version différente de .Net Framework)
EDIT Merci à Fevzi Apaydın pour pointer vers une solution plus élégante.
Vous pouvez obtenir le même résultat en ajoutant une ou plusieurs balises virtualDirectory à la balise Application:
Référence:
la source
applicationhost.config
a changé. Plus judicieusement que les versions précédentes, il se trouve désormais dans le.vs\config
sous-dossier de votre dossier de solution.L'approche de @ Be.St.est vraie, mais incomplète. Je copie simplement son explication en corrigeant la partie incorrecte.
La configuration IIS express est gérée par applicationhost.config.
Vous pouvez le trouver dans
À l'intérieur, vous pouvez trouver la section des sites qui contient une section pour chaque site configuré par IIS Express.
Ajoutez (ou modifiez) une section de site comme celle-ci:
Au lieu d'ajouter un nouveau bloc d'application, vous devez simplement ajouter un nouvel élément virtualDirectory à l'élément parent de l'application.
Modifier - Visual Studio 2015
Si vous recherchez le fichier applicationHost.config et que vous utilisez VS2015, vous le trouverez dans:
la source
Dans VS2013, je l'ai fait dans les étapes suivantes:
1.Cliquez avec le bouton droit sur le projet d'application Web et appuyez sur Propriétés
2.Affichez l'onglet "Web" de la page Propriétés
3.Sous les serveurs, avec "IIS Express" étant le choix par défaut de la liste déroulante, dans la "URL du projet", changez l'url en utilisant le numéro de port pour celui qui vous convient. Par exemple, j'ai supprimé le numéro de port et ajouté "/ MVCDemo4" après l'hôte local.
4.Cliquez sur le bouton "Créer un répertoire virtuel".
5.Exécutez votre projet et la nouvelle URL sera utilisée
la source
Si vous utilisez Visual Studio 2013 (peut nécessiter une édition Pro ou une version ultérieure), j'ai pu ajouter un répertoire virtuel à un site Web IIS Express (basé sur un fichier) en cliquant avec le bouton droit sur le site Web dans l'Explorateur de solutions et en cliquant sur Ajouter> Nouveau répertoire virtuel. Cela a ajouté une entrée au fichier applicationhost.config comme avec les méthodes manuelles décrites ici.
la source
Une nouvelle option est Jexus Manager pour IIS Express,
https://blog.lextudio.com/2014/10/jexus-manager-for-iis-express/
C'est juste l'outil de gestion que vous savez utiliser.
la source
J'avais autre chose, les fichiers eux-mêmes étaient inaccessibles dans un environnement SBS.
Supprimez les fichiers du dossier de configuration (si vous ne pouvez pas les ouvrir!) Et remplacez-les par une copie du dossier sur votre propre ordinateur local.
Correction de ça pour moi :)
la source
J'ai dû faire l'entrée dans le fichier [project] .vs \ config \ applicationhost.config.
Avant cela, cela fonctionnait à partir du déploiement, mais pas à partir du code.
la source
En réponse à la question complémentaire -
Je n'ai jamais trouvé de réponse cohérente à cela nulle part, mais j'ai ensuite compris que vous pouviez le faire avec un événement post build en utilisant la tâche XmlPoke dans le fichier de projet du site Web -
Vous pouvez utiliser cette technique pour rediriger n'importe quoi dans le fichier avant le démarrage d'IISExpress. Cela vous permettrait de forcer initialement un fichier applicationHost.config dans GIT (en supposant qu'il soit ignoré par gitignore), puis de rediriger tous les chemins au moment de la construction. GIT ignorera toutes les modifications apportées au fichier, il est donc désormais facile de les partager.
En réponse à la question supplémentaire sur l'ajout d'autres applications sous un même site:
Vous pouvez créer le site dans le fichier d'hôtes de votre application comme celui de votre serveur. Par exemple:
Utilisez ensuite la technique ci-dessus pour modifier les emplacements des dossiers au moment de la génération.
la source