Создание виртуальных каталогов в IIS Express - PullRequest
121 голосов
/ 05 января 2012

Есть ли способ создать виртуальный каталог в IIS express?Я знаю, что Кассини не может этого сделать, и было бы неплохо сделать это без использования полной версии IIS.

У меня так далеко, что я могу просматривать свое приложение локально вIIS выражается так:

http://localhost:1132/

Я хотел бы создать виртуальный каталог с именем «OffSiteStuff» и указать его в каком-нибудь месте на диске C, например «c:\ offsitestuff ", а затем найдите элементы в этой папке следующим образом:

http://localhost:1132/OffSiteStuff/UserUploadedImage.jpg

Я знаю, что могу сделать это с папкой на моем сайте и при этом использовать IIS Express, или, дляэто имеет значение старый Cassini, но в этой папке будут храниться изображения, загруженные пользователями, и я действительно не хочу, чтобы эти изображения смешивались с файлами приложений.

Другое, «большое» решение заключается в развертываниисайта на полноценный экземпляр Server 2008 IIS 7.5 каждый раз, когда я хочу отлаживать функции, использующие сторонний контент, но это тоже немного громоздко.

Есть ли способ сделать это в <System.WebServer />Веб-конфигурация элление

Ответы [ 7 ]

126 голосов
/ 19 января 2012

Экспресс-конфигурация IIS управляется applicationhost.config.
Вы можете найти его в папке

Users \ \ Documents \ IISExpress \ config.

Внутри вы можете найти раздел сайтов, содержащий раздел для каждого сайта, настроенного IIS Express.

Добавить (или изменить) раздел сайта следующим образом:

<site name="WebSiteWithVirtualDirectory" id="20">
   <application path="/" applicationPool="Clr4IntegratedAppPool">
     <virtualDirectory path="/" physicalPath="c:\temp\website1" />
   </application>
   <application path="/OffSiteStuff" applicationPool="Clr4IntegratedAppPool">
     <virtualDirectory path="/" physicalPath="d:\temp\SubFolderApp" />
   </application>
    <bindings>
      <binding protocol="http" bindingInformation="*:1132:localhost" />
   </bindings>
</site>

Практически вам нужнодобавьте новый тег приложения на вашем сайте для каждого виртуального каталога.Вы получаете большую гибкость, потому что вы можете установить другую конфигурацию для виртуального каталога (например, другую версию .Net Framework)

EDIT Благодаря Fevzi Apaydın, чтобы указать на более элегантное решение.

Этого же результата можно добиться, добавив один или несколько тегов virtualDirectory в тег приложения:

<site name="WebSiteWithVirtualDirectory" id="20">
   <application path="/" applicationPool="Clr4IntegratedAppPool">
     <virtualDirectory path="/" physicalPath="c:\temp\website1" />
     <virtualDirectory path="/OffSiteStuff" physicalPath="d:\temp\SubFolderApp" />
   </application>
    <bindings>
      <binding protocol="http" bindingInformation="*:1132:localhost" />
   </bindings>
</site>

Ссылка:

91 голосов
/ 29 марта 2013
Подход

@Be.St. Верен, но неполон.Я просто копирую его объяснение с исправлением неверной части.

Конфигурация IIS express управляется applicationhost.config.
Вы можете найти его в

Пользователи\ \ Documents \ IISExpress \ config папка.

Внутри вы можете найти раздел сайтов, содержащий раздел для каждого настроенного сайта IIS Express.

Добавить (или изменить)раздел сайта, подобный следующему:

<site name="WebSiteWithVirtualDirectory" id="20">
   <application path="/" applicationPool="Clr4IntegratedAppPool">
     <virtualDirectory path="/" physicalPath="c:\temp\website1" />
     <virtualDirectory path="/OffSiteStuff" physicalPath="d:\temp\SubFolderApp" />
   </application>
   <bindings>
      <binding protocol="http" bindingInformation="*:1132:localhost" />
   </bindings>
</site>

Вместо добавления нового блока приложения необходимо просто добавить новый элемент virtualDirectory в родительский элемент приложения.

Редактирование - Visual Studio 2015

Если вы ищете файл applicationHost.config и используете VS2015, вы найдете его в:

[каталог_решения] /. vs / config / applicationHost.config

6 голосов
/ 22 декабря 2013

В VS2013 я сделал это в следующие шаги:

1.Нажмите правой кнопкой мыши проект веб-приложения и нажмите Свойства

2. Просмотрите вкладку "Веб" на странице свойств

3.На серверах, где «IIS Express» является выпадающим списком по умолчанию, в «URL-адресе проекта» измените URL-адрес, используя номер порта, на подходящий вам.Например, я удалил номер порта и добавил «/ MVCDemo4» после localhost.

4.Нажмите кнопку «Создать виртуальный каталог».

5. Запустите ваш проект, и новый URL будетиспользоваться

2 голосов
/ 02 июля 2015

Если вы используете Visual Studio 2013 (может потребоваться версия Pro или выше), я смог добавить виртуальный каталог на веб-сайт IIS Express (на основе файлов), щелкнув правой кнопкой мыши веб-сайт в обозревателе решений инажав Добавить> Новый виртуальный каталог.Это добавило запись в файл applicationhost.config, как и в случае с ручными методами, описанными здесь.

1 голос
/ 18 июня 2015

Новая опция - Jexus Manager для IIS Express,

https://blog.lextudio.com/2014/10/jexus-manager-for-iis-express/

Это просто инструмент управления, который вы знаете, как использовать.

0 голосов
/ 31 января 2019

Мне нужно было сделать запись в файле [project] .vs \ config \ applicationhost.config.

До этого он работал из развертывания, но не из кода.

0 голосов
/ 27 ноября 2012

У меня было что-то еще, сами файлы были недоступны в среде SBS.

Удалите файлы в папке конфигурации (если вы не можете их открыть!) И замените их копией папки.на вашем локальном ПК.

Исправлено для меня:)

...