Есть ли способ создать виртуальный каталог в IIS Express? Я знаю, что Cassini не может этого сделать, и было бы неплохо сделать это без использования полной версии IIS.
У меня это так далеко, что я могу просматривать свое приложение локально в IIS Express следующим образом:
Я хотел бы создать виртуальный каталог с именем «OffSiteStuff» и указать его в какое-то место на моем диске C, например «c: \ offsitestuff», а затем просмотреть элементы в этой папке, например:
HTTP: // локальный: 1132 / OffSiteStuff / UserUploadedImage.jpg
Я знаю, что могу сделать это с помощью папки на моем сайте и по-прежнему использовать IIS Express или, если на то пошло, старый добрый Cassini, но эта папка будет хранить изображения, загруженные пользователями, и я действительно не хочу, чтобы эти изображения смешивались с файлы приложений.
Другое, «масштабное» решение - развертывать сайт на полномасштабном экземпляре Server 2008 IIS 7.5 каждый раз, когда я хочу отладить функции, использующие стороннее содержимое, но это тоже немного обременительно.
Есть ли способ сделать это в <System.WebServer />
элементе веб-конфигурации?
источник
applicationHost.config
Файл находится в корневом каталоге проекта:${PROJECT}\.vs\config\applicationHost.config
.Ответы:
Экспресс-конфигурация IIS управляется applicationhost.config.
Вы можете найти это в
Внутри вы можете найти раздел сайтов, который содержит раздел для каждого настроенного сайта IIS Express.
Добавьте (или измените) такой раздел сайта:
Практически вам нужно добавить новый тег приложения на свой сайт для каждого виртуального каталога. Вы получаете большую гибкость, потому что вы можете установить другую конфигурацию для виртуального каталога (например, другую версию .Net Framework)
EDIT Благодаря Февзи Апайдин , чтобы указать на более элегантное решение.
Вы можете добиться того же результата, добавив один или несколько тегов virtualDirectory к тегу Application:
Ссылка:
источник
applicationhost.config
было изменено. Более разумно, чем в предыдущих версиях, теперь он находится в.vs\config
подпапке вашего решения.Апрель @ Be.St. верный, но неполный. Я просто копирую его объяснение с исправлением неправильной части.
Экспресс-конфигурация IIS управляется applicationhost.config.
Вы можете найти это в
Внутри вы можете найти раздел сайтов, который содержит раздел для каждого настроенного сайта IIS Express.
Добавьте (или измените) такой раздел сайта:
Вместо добавления нового блока приложения вы должны просто добавить новый элемент virtualDirectory к родительскому элементу приложения.
Изменить - Visual Studio 2015
Если вы ищете файл applicationHost.config и используете VS2015, вы найдете его в:
источник
В VS2013 я сделал это следующим образом:
1. Щелкните правой кнопкой мыши проект веб-приложения и выберите Свойства.
2. Просмотрите вкладку «Интернет» на странице свойств.
3. В разделе «Серверы», где «IIS Express» является выбором по умолчанию в раскрывающемся списке, в «URL-адресе проекта» измените URL-адрес, используя номер порта, на тот, который вам подходит. Например, я удалил номер порта и добавил "/ MVCDemo4" после localhost.
4. Нажмите кнопку «Создать виртуальный каталог».
5.Запустите свой проект, и будет использоваться новый URL-адрес.
источник
Если вы используете Visual Studio 2013 (может потребоваться версия Pro или выше), я смог добавить виртуальный каталог на веб-сайт IIS Express (файловый), щелкнув правой кнопкой мыши веб-сайт в обозревателе решений и нажав Добавить> Новый виртуальный каталог. Это добавило запись в файл applicationhost.config, как и в случае ручных методов, описанных здесь.
источник
Новая опция - Jexus Manager для IIS Express,
https://blog.lextudio.com/2014/10/jexus-manager-for-iis-express/
Это просто инструмент управления, которым вы умеете пользоваться.
источник
У меня было что-то еще, сами файлы, которые были недоступны в среде SBS.
Удалите файлы в папке config (если вы не можете их открыть!) И замените их копией папки на вашем собственном локальном компьютере.
Исправил для меня :)
источник
Пришлось сделать запись в файле [проект] .vs \ config \ applicationhost.config.
До этого он работал из развертывания, но не из кода.
источник
В ответ на дальнейший вопрос -
Я нигде не нашел последовательного ответа на этот вопрос, но потом понял, что вы можете сделать это с помощью события пост-сборки, используя задачу XmlPoke в файле проекта для веб-сайта -
Вы можете использовать этот метод, чтобы повторно указать что-либо в файле до запуска IISExpress. Это позволит вам изначально принудительно поместить файл applicationHost.config в GIT (при условии, что он игнорируется gitignore), а затем повторно указать все пути во время сборки. GIT игнорирует любые изменения в файле, поэтому теперь ими легко поделиться.
В ответ на следующий вопрос о добавлении других приложений на один сайт:
Вы можете создать сайт в файле hosts вашего приложения, точно так же, как сайт на вашем сервере. Например:
Затем используйте описанную выше технику, чтобы изменить расположение папок во время сборки.
источник