用OWIN启动多个web服务器

本文关键字:web 服务器 OWIN 启动 | 更新日期: 2023-09-27 18:05:13

我有一个场景,我想托管一个ASP。. NET MVC Web API应用程序,以及同一URL上的单页网站项目

本质上,网站托管在http://localhost/上,API托管在http://localhost/api/上。

在IIS中,这很简单,只需设置一个Application子文件夹,并将其指向磁盘上的文件。在OWIN中,我不确定如何实现此场景。

我有一个控制台应用程序,将作为Web主机,它目前托管的WebAPI应用程序使用的方法在这段代码中找到:SelfHostWebApiWithOwinAndUnity

有人能帮忙吗?

用OWIN启动多个web服务器

如果我理解正确,你想托管一些静态html文件(s)以及web api。这在OWIN中是相当简单的。我将假设您已经拥有Web API的nuget包,因此继续获取StaticFiles包。然后在启动。配置时,可以添加以下代码:

var options = new FileServerOptions();
options.EnableDefaultFiles = true;
options.DefaultFilesOptions.DefaultFileNames = new[] { "index.html" };
options.DefaultFilesOptions.FileSystem = new PhysicalFileSystem("Web");
options.DefaultFilesOptions.RequestPath = PathString.Empty;
app.UseFileServer(options);

这将提供来自文件夹"Web"的文件。服务的默认文件将是"index.html",并且Web文件夹中的任何其他文件都可以使用其文件名(即。localhost/otherpage.html)。它不允许访问Web的子文件夹。

然后确保你的WebAPI路由都以"api/"
开头