HttpContext.Request.Path 和 HttpContext.Request.PathBase 的区别是什么?

5

我想知道在Web API控制器中,HttpContext.Request.PathHttpContext.Request.PathBase之间的区别是什么?我已经阅读了文档,但我不理解它们之间的差异,甚至测试了两个属性:

public async Task<ActionResult<string>> 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}'");

    // [...]
}

在.NET 5.0中,PathBase 何时不为空?


2
可能是在 Startup.Configure 方法中配置 app.UsePathBase("/some-path"),但这只是一个猜测(你可以轻松尝试)。 - Camilo Terevinto
1
@CamiloTerevinto 你说得对,更多细节请看下面的回答。谢谢! - stefan.at.kotlin
1个回答

6

正如Camilo所写的那样,这是关于 app.UsePathBase("/some-path") 的问题。

添加app.usePathBase("/mysite1")后,需要调用/mysite1/api/items而不是/api/items,然后它看起来像这样:

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

很明显,PathBase可以用于在一个主机上托管多个站点/ API。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接