#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 и маршрутизацией запросов приложения .