Создание виртуальных каталогов в IIS express

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

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

http://localhost:1132/

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

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

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

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

Есть ли способ сделать это в элементе <System.WebServer /> Web config?

Ответ 1

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

Пользователи\< имя_пользователя > \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)

ИЗМЕНИТЬ Благодаря 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>

Ссылка:

Ответ 2

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

Конфигурация 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, вы найдете его в:

[solution_directory]/. Против/конфигурации/applicationHost.config

Ответ 3

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

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

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

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

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

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

Ответ 4

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

Ответ 6

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

Удалите файлы в папке config (если вы не можете их открыть!) и замените их копией папки на вашем локальном компьютере.

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

Ответ 7

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

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