путь приложения к основному сайту .net в IIS

#c# #asp.net #.net #asp.net-core #iis

#c# #asp.net #.net #asp.net-core #iis

Вопрос:

У меня есть два веб-сайта в IIS (на самом деле я пытаюсь настроить его локально на IISExpress)

  • WebApp1 — .NET Framework 4.7.2
  • WebApp2 — .NET Core 3.1

Я хотел бы указать WebApp2 из WebApp1 на path / Test. Я настроил свой applicationhost.config, как показано ниже:

 <sites>
    <site name="WebApp1" id="1">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:SomePathAppWebApp1" />
    </application>
    <application path="/Test" applicationPool="WebApp2 Pool">
        <virtualDirectory path="/" physicalPath="C:SomePathAppWebApp2" />
    </application>
    <bindings>
        <binding protocol="https" bindingInformation="*:44364:localhost" />
        <binding protocol="http" bindingInformation="*:55757:localhost" />
    </bindings>
    </site>
    <site name="WebApp2" id="2">
    <application path="/" applicationPool="WebApp2 AppPool">
        <virtualDirectory path="/" physicalPath="C:SomePathAppWebApp2" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:55966:localhost" />
        <binding protocol="https" bindingInformation="*:44369:localhost" />
    </bindings>
    </site>
</sites>
 

Мое приложение web.config для .net core настроено следующим образом

 <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <remove name="aspNetCore" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" hostingModel="inprocess" />
  </system.webServer>
</configuration>
 

csproj — это:

 <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AspNetCoreModuleName>AspNetCoreModuleV2</AspNetCoreModuleName>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
 

И WebApp1, и WebApp2 работают нормально, но я бы хотел, чтобы запросы отправлялись на localhost: 44364 / Test, обрабатываемые WebApp2.

Я установил пакет хостинга для IIS, пробовал разные модели хостинга и комбинации возможных рабочих конфигураций, но каждый раз я получал какую-то ошибку (404, 500, 502.5 и многие другие) и понятия не имею, как заставить ее работать. Можно ли это как-то настроить?

Комментарии:

1. Что означает указывать WebApp2 из WebApp1 в path / Test? Вы хотите перенаправить WebApp1 на WebApp2?

2. ДА. Что я хочу получить, так это то, что когда я отправляю запрос в WebApp1 (localhost: port / Test), он обрабатывается WebApp2. Это работает, если оба приложения являются .net framework, но я не могу сделать то же самое для WebApp2 на .net core

3. Для достижения этой цели вы можете попробовать использовать маршрутизацию запросов приложений. Обратный прокси-сервер с перезаписью URL v2 и маршрутизацией запросов приложения .