Подтвердить что ты не робот

Как настроить IIS Express для отладки приложения в подкаталоге?

Мое веб-приложение обычно находится в подкаталоге корня в IIS. Предположим, что подкаталог "app"

Когда я пытаюсь отладить его в Visual Studio, путь всегда коренится в localhost без подкаталога. Это путает мои пути в приложении.

Когда я пытаюсь изменить форму URL проекта от http://localhost:port/ до http://localhost:port/app, он просто говорит: "Невозможно создать виртуальный каталог". Ну, это то, что было сказано в первый раз, пока я не удалил запись приложения из файла application.config, тогда это удалось.

Когда я пытаюсь "переопределить корневой URL приложения" на одно и то же, он просто не работает. Он либо получает ошибку Ошибка 500.0 Внутренний сервер, либо в некоторых случаях он действует так, как приложение приложения web.config, как в корневом, так и в виртуальном подкаталоге, потому что оно дает ошибку, что я пытаюсь добавить модуль, который имеет уже добавлен (предположительно в корневой каталог).

Я пробовал редактировать настройки проекта в application.config для IIS Express, но никакая комбинация настроек не работает.

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

Это выглядит так:

<site name="app" id="5">
   <application path="/" applicationPool="Clr4IntegratedAppPool">
     <virtualDirectory path="/app" physicalPath="C:\Users\username\Desktop\wwwroot\app" />
   </application>
   <bindings>
     <binding protocol="http" bindingInformation="*:3056:localhost" />
   </bindings>
</site>

Если я изменил путь приложения к "/app", тогда он дает ошибку 500.19, заявив, что конфигурация недействительна. Если я делаю то же самое и удаляю тег виртуального каталога, то он вообще не запускает IIS Express.

4b9b3361

Ответ 1

Я нашел ответ здесь: fooobar.com/info/262486/... Другой вопрос, но тот же ответ.

В принципе, нужно создать дочернее приложение, а не только дочерний виртуальный каталог.

<site name="app" id="5">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Users\username\Desktop\wwwroot" />
    </application>
    <application path="/app" applicationPool="Clr4IntegratedAppPool">
      <virtualDirectory path="/" physicalPath="C:\Users\username\Desktop\wwwroot\app" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:3056:localhost" />
    </bindings>
</site>

Кажется, что требуются записи приложения (т.е. для него требуется корневое приложение (даже если оно физически является пустым каталогом фиктивных файлов), а также дочернее приложение). Если я опустил первую запись приложения в корневом каталоге, тогда она получит ошибку 500.19 "Запрошенная страница не может быть доступна, потому что связанные данные конфигурации для страницы недействительны". Однако при использовании обеих записей приложений он работает без каких-либо проблем.

Насколько я могу судить, в Visual Studio нет возможности выполнить указанные выше настройки, поэтому его необходимо отредактировать вручную в application.config. Поэтому эти настройки полностью не связаны с самими проектами проекта веб-приложений, что не очень хорошо, IMO.