Мне интересно, в чем разница между HttpContext.Request.Path и HttpContext.Request.PathBase в контроллере Web API? Я прочитал документацию, но не понял, в чем должна заключаться предполагаемая разница, даже после тестирования обоих свойств:

public async Task> PostItem(ItemPostRequest itemPostRequest)
{   
    // Output: Path is: '/api/items'
    Debug.WriteLine($"Path is: '{HttpContext.Request.Path}'");
    
    // Output: PathBase is: ''
    Debug.WriteLine($"PathBase is: '{HttpContext.Request.PathBase}'");

    // [...]
}

Когда PathBase может быть непустым? Я работаю на NET 5.0.

Ответы (1)

Как написал Камило, речь идет о app.UsePathBase("/some-path").

Добавив app.usePathBase("/mysite1") нужно вызвать /mysite1/api/items вместо /api/items и тогда это будет выглядеть так:

Path is: '/api/items'
PathBase is: '/mysite1'

Очевидно, что PathBase можно использовать для размещения нескольких сайтов/API на одном хосте.

2022 WebDevInsider