自托管 Owin/Katana 应用程序中的多个 Web 应用程序

Multiple Web Applications within Self Hosted Owin/Katana Application

我正在开发一个使用 Katana 公开自托管 WebAPI 服务的应用程序。我想以类似于 IIS 允许单个网站下的多个应用程序的方式管理内容。

例如,我可能有三个文件夹包含 web api 内容:

这些文件夹中的每一个都将是一个独立的应用程序,具有 web.config、控制器、路由等

我可以为其中的每一个生成一个新的 Owin 实例,但这需要单独的端口。使用 IIS,我可以配置单独的应用程序,以便 http://localhost:8080/App1 will route to the first app, http://localhost:8080/App2 将路由到第二个应用程序,依此类推。 Owin/Katana 有类似的可能吗?

可以 运行 Owin 实例共享端口。您只需要确保 WebApps 以其自己的特定 URL 启动,例如:

Microsoft.Owin.Hosting.WebApp.Start<App1Startup>("http://localhost:8080/App1");
Microsoft.Owin.Hosting.WebApp.Start<App2Startup>("http://localhost:8080/App2");

您可以在相同或不同的进程中启动它们,请求将自动路由到正确的实例。

我没有找到任何官方文档来解释这一点,但是通过遵循 Getting Started With Owin and Katana 指南并通过如上所述注册多个应用程序来扩展它很容易证明。