我有一个 Windows 服务,它通过 WebAPI 和 OData 使用 http.sys 公开一些 API(以促进端口共享):
/api
/odata
/swagger
我也对前缀 http.sys 有保留https://+:1234/
。
此外,我有一个使用此 API 的网站 (SPA),我希望它在同一端口上运行。到目前为止,这没问题,因为我在服务中有静态文件托管。由于各种原因,我将静态文件托管移动到了它自己的服务中。并将我的 http.sys 预订更改为:
静态文件托管(弱通配符):
https://*:1234/
服务(强通配符):
https://+:1234/api/
https://+:1234/swagger/
https://+:1234/odata
在我的服务中,我改变了我的
WebApp.Start("https://+:1234", Startup);
至
var options = new StartOptions
{
urls =
{
"https://+:1234/api/",
"https://+:1234/swagger/",
"https://+:1234/odata/",
}
};
_Service = WebApp.Start(options, Startup);
但是,现在到 WebApi 的路由是https://+:1234/api/api/
并且我什至可以使用https://+:1234/api/odata/
,这是可以理解的,但不是我想要的。
我可以欺骗 WebApi,虽然它在三个侦听 url 上向 http.sys 注册自己,但始终https://+:1234/
用作路由的基础?