使用.NET Core Web API作为ASP.NET Web窗体应用程序的子路由

问题描述

我有.NET Framework 4.8 ASP.NET Web窗体应用程序。使用ashx处理程序非常不方便,因此我想使用.NET Core Web API(以便将我的所有代码从处理程序切换到控制器,并将整个应用程序切换到.NET Core)。

我知道将ASP.NET WebAPI附加到ASP.NET Web窗体是easy,但是我在.NET Core WebAPI方面苦苦挣扎,因为它的请求管道是不同的。

是否可以使用现有Web Forms应用程序中的.NET Core WebAPI项目作为子路由?

解决方法

我认为不可能。 面向.net框架和.net核心是完全不同的事情。

我将创建两个不同的应用程序,并使用IIS UrlRewrite / ARR将特定请求重定向到核心应用程序:

<rule name="ReverseProxyInboundRule1" stopProcessing="true">
    <match url="^api/(.*)" />
    <action type="Rewrite" url="http://localhost:44444/{R:0}" logRewrittenUrl="false" />
</rule>

通过这种方式,任何指向/ api /的请求都将转发到侦听端口44444的另一个Web应用程序(在IIS内部,而不是从客户端)