У меня есть служба Windows, которая предоставляет некоторые API-интерфейсы через WebAPI и OData с использованием http.sys (для облегчения совместного использования портов):
/api
/odata
/swagger
У меня также есть резервирование с http.sys для префикса https://+:1234/
.
Кроме того, у меня есть веб-сайт (SPA), который использует этот API, и я бы хотел, чтобы он работал на том же порту.До сих пор это не было проблемой, потому что у меня был статический файловый хостинг в сервисе.По разным причинам я перенес статический файловый хостинг на собственный сервис.и изменил мое резервирование 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, хотя он регистрируется с помощью http.sys на трех URL-адресах прослушивания, но всегда использует https://+:1234/
в качестве основы для маршрутизации?