用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
有人能帮忙吗?
如果我理解正确,你想托管一些静态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/"